好好背……嗯
int sieve(){ //筛法,筛出1,000,000以下的所有素数
int i,j,k;
for(i=0;i<501;++i)
if(!p[i])
for(k=(i<<1)+3,j=i*k+i+k;j<N;j+=k)
p[j]=1;
for(prm[i=j=0]=2;i<N;++i)
if(!p[i])
prm[++j]=(i<<1)+3;
return j+1;
}