筛选素数
1 const int M=10000; 2 int m=(int)sqrt(M+0.5); 3 bool vis[M]; 4 int pre[M],t; 5 void init() 6 { 7 t=0; 8 memset(vis,0,sizeof(vis)); 9 for(int i=2;i<=m;i++) 10 { 11 if(!vis[i]) 12 { 13 int j; 14 for(j=i*i;j<M;j+=i) 15 { 16 vis[j]=1; 17 } 18 } 19 } 20 for(int k=2;k<M;k++) 21 { 22 if(!vis[k]) 23 { 24 pre[t++]=k; 25 } 26 } 27 28 }