#include<cstdio>
const int maxn=10010;//數組不能設定得太大,否則會超時!
struct factor{//牛客滿分要改爲12000000,然而這樣會使官網超時!
int x=0,count=0;
}c[15];
int prime[maxn]={0};//素數表
bool p[maxn]={0};//是素數則爲0,不是則爲1;
int num=0;
void find_prime(int n){ //篩選法打印n以內的素數表!!!
for(int i=2;i<maxn;i++){
if(p[i]==false&&i<n){
prime[num++]=i;
if(i>=n) break;
for(int j=i+i;j<maxn;j+=i){ //數組不能設定得太大,否則會超時!
p[j]=true;
}
}
}
}
int main(){
int m,n;
int shu=0;
scanf("%d",&n);//打印n的質因子;
m=n;
find_prime(n);
for(int i=0;i<num;i++){
while(n%prime[i]==0){
c[shu].x=prime[i];
c[shu].count++;
n/=prime[i];
}
if(c[shu].count!=0) shu++;
}
if(n==m){c[shu].x=m;c[shu++].count++;}
printf("%d=",m);
for(int i=0;i<shu;i++){
printf("%d",c[i].x);
if(c[i].count!=1) printf("^%d",c[i].count);
if(i!=shu-1) printf("*");
}
return 0;
}
A1059 primefactors
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.