#include <iostream> #include <cstdio> #include <map> using namespace std; int cou=0; map<int,int> prime_factor(int a){ map<int,int> res; for(int i=2;i*i<a;i++){ while(a%i==0){ ++res[i]; a/=i; cou++; } } if(a!=1){ res[a]++; cou++; } return res; } int main() { int a; scanf("%d",&a); map<int,int> ans=prime_factor(a); int jud=0; for(int i=2;i<=a;i++){ if(jud==0){ if(ans[i]>0){ printf("%d",i); ans[i]--; jud=1; }else{ continue; } while(ans[i]>0){ printf("*%d",i); ans[i]--; } }else{ while(ans[i]>0){ printf("*%d",i); ans[i]--; } } } return 0; }
原文:http://www.cnblogs.com/TWS-YIFEI/p/6358427.html