//打素数表 #include<stdio.h> #include<math.h> #include<stdlib.h> const int maxn=10010; bool p[maxn]; int isPrime(int n) { if(n<=1) return false; int sqr=(int)sqrt(1.0*n); for(int i=2;i<=sqr;i++) { if(n%i==0) return false; } return true; } void FindPrime() { for(int i=0;i<maxn;i++) { if(isPrime(i)) p[i]=true; } } int main() { FindPrime(); int n=0; scanf("%d",&n); int len=n; printf("%d=",n); for(int i=2;i<len;i++) { while(p[i]==true&&n%i==0) { printf("%d",i); if(n/i!=1) { printf("*"); } n=n/i; } } system("pause"); } |
Double click to view unformatted code.