题目描述
题目大意
给出一个int范围的整数,按照从小到大的顺序输出其分解为质因数的乘法算式
输入格式
每个输入测试用例包含一个int范围的正整数N
输出格式
按照从小到大的顺序输出其分解为质因数的乘法算式,1判特例。
源代码
#include<cstdio>
#include<cmath>
const long maxn = 10010;
int prime[maxn]; //整数表
int p[maxn] = {0}; //素数表
int pNum = 0; //统计素数个数
void Find_prime(){ //埃氏筛法筛选素数
for(int i = 2; i < maxn; i++){
if( prime[i] == false){
p[pNum++] = i;
for(int j = i + i; j < maxn; j += i){
prime[j] = true;
}
}
}
}
/*
常见打印素数表是使用sqrt()法; O[n * sqrt(0)]
本题使用埃氏筛法; O[nloglogn]
时间复杂度上更优,也适合开大范围
*/
struct factor{ //存放质因子x及其个数cnt
int x, cnt;
}fac[10];
/*
2*3*5*7*11*13*17*19*23*29
已经超过int范围,