#include<bits/stdc++.h> using namespace std; const int maxn=100001; int pnum=0,prime[maxn]={0}; bool p[maxn]={0}; void find_p() { 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; } } } } struct fac{ int prime[maxn]; int facnum; }factor; void init_fac() { memset(factor.prime,0,sizeof(factor.prime)); factor.facnum=1; } int main() { find_p(); init_fac(); int n; scanf("%d",&n); printf("%d=",n); if(n==1) printf("1"); else { int flag=0; for(int i=0;i<pnum ;i++) { while(n%prime[i]==0) { factor.prime[i]++; n/=prime[i]; } if(i+1>factor.facnum) factor.facnum=i+1; if(n==1) break; } for(int i=0;i<factor.facnum;i++) { while(factor.prime[i]!=0) { if(flag==0) { printf("%d",prime[i]); flag=1; } else printf("*%d",prime[i]); factor.prime[i]--; } } } return 0; } |
Double click to view unformatted code.