筛选素数

 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 }

 

posted on 2018-07-14 12:56  cltt  阅读(134)  评论(0编辑  收藏  举报

导航