筛选素数

Posted tingtin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了筛选素数相关的知识,希望对你有一定的参考价值。

 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 }

 

以上是关于筛选素数的主要内容,如果未能解决你的问题,请参考以下文章

素数筛选和合数分解

筛选 Eratosthenes 素数高达一百万 c++

Eratosthenes筛选法构造1-n 素数表

素数筛选--hdu1262

如何提高筛选法求大范围素数的效率

素数筛选法