#include <stdio.h> #include <time.h> #include <math.h> #define N 1000000//差点爆栈 long int arr[N]; int isPrime(long int n){ int flag=1; long i; if(n%2==0) return 0; for(i=3;i<sqrt(n)+1;i+=2){ if(n%i==0){ flag=0; return flag; } } return flag; } int main(){ clock_t a,b; a=clock(); long int i; for(i=3;i<N;i+=2){ if(isPrime(i)==1) ;//printf("%d\t",i); } double dur=(double)(clock()-a)/CLOCKS_PER_SEC; printf("\n%f\n",dur); long int j; b=clock(); for(i=0;i<N;i++) arr[i]=i; for(i=2;i<N;i++) for(j=2*i;j<N;j+=i){ arr[j]=0; } for(i=2;i<N;i++) if(arr[i]>0) ;//printf("%d\t",arr[i]); double dur2=(double)(clock()-b)/CLOCKS_PER_SEC; printf("\n%f\n",dur2); return 0; }
转载于:https://www.cnblogs.com/xzenith/p/3632794.html