筛法求素数模板1

Posted savennist

tags:

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

基础知识,没什么好说的,直接上代码!

 1 const int maxn = 1e8;
 2 int prime[maxn+5];
 3 int len;
 4 
 5 int initial_prime()
 6 {
 7     memset(prime,0,sizeof(prime));
 8     prime[0]=prime[1]=1;
 9     for(int i=2;i<=sqrt(maxn);i++)
10     {
11         if(prime[i])continue;
12         for(int k=i;k*i<=maxn;k++)prime[k*i]=1;
13     }
14     int cur=0;
15     for(int i=2;i<=maxn;i++)
16     {
17         if(prime[i]==0)prime[cur++]=i;
18     }
19     len=cur;
20     return 0;
21 }

 经过上述代码计算,对于前i个正整数内,存在的素数的个数如下:

100->25
1000->168
10000->1229
100000->9592
1000000->78498
10000000->664579
100000000->5761455

 

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

筛法求素数

一般筛法求素数+快速线性筛法求素数

转载一般筛法求素数+快速线性筛法求素数

欧拉筛法求素数

筛法求素数

用筛法求之N内的素数。