我写过的最优化的求素数表的算法 #define NUM 1000000 #define N NUM/2 bool prime[N]; void prim(void) { int i,j,len; len=(int)sqrt(NUM); memset(prime,1,N); for(i=0;2*i+3<len;i++) if(prime[i]) for(j=3*i+3;j<N;j+=2*i+3) prime[j]=0; //输出素数表 for(i=0;i<N;i++) if(prime[i]) cout<<2*i+3<<"/t"; }