#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;
}
07-26
07-26
07-26