A1096 Consecutive Factors (20分)(质数分解)

一、技术总结

  1. 这里面主要有

二、参考代码

#include<iostream>
#include<vector>
#include<cmath>
#include<algorithm>
using namespace std;
typedef long long LL;
//const  int maxn = 1000000000;
//bool isPrime(int n){
//	if(n <= 1) return false;
//	int sqr = (int)sqrt(n);
//	for(int i = 2; i <= sqr; i++){
//		if(n % i == 0) return false; 
//	}
//	return true;
//}
//
//int prime[maxn], pNum = 0;//prime用来存放所有素数 
//bool p[maxn] = {0};//i如果为false表示为素数,如果为true表明不是素数 
//void Find_Prime(){
//	for(int i = 2; i < maxn; i++){
//		if(p[i] == false){
//			prime[pNum++] = i;
//			for(int j = i + i; j < maxn; j += i){
//				p[j] = true;
//			}
//		}
//	}
//}

int main(){
	LL n;
	scanf("%lld", &n);
	LL sqr = sqrt(n), ansI = 0, ansLen = 0;
	for(LL i = 2; i <= sqr; i++){
		LL temp = 1, j = i;
		while(1){
			temp *= j;
			if(n % temp != 0) break;
			if(j - i + 1 > ansLen){
				ansLen = j - i + 1;
				ansI = i;
			}
			j++;
		}
	}
	if(ansLen == 0){
		printf("1\n%lld", n);
	}else{
		printf("%lld\n", ansLen);
		for(LL i = 0; i < ansLen; i++){
			printf("%lld", ansI + i);
			if(i < ansLen - 1){
				printf("*");
			}
		}
	}
	return 0;
} 
posted @ 2020-06-30 22:49  睿晞  阅读(118)  评论(0编辑  收藏  举报