素数的快速筛法(埃氏筛法模板)
Posted fengzeng666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了素数的快速筛法(埃氏筛法模板)相关的知识,希望对你有一定的参考价值。
1 int prime[maxn];//第i个素数 2 bool is_prime[maxn];//is_prime[i]为true表示i是素数 3 int sieve(int n)//返回n以内的素数 4 { 5 int cnt=0; 6 for(int i=0;i<=n;i++) 7 is_prime[i]=true; 8 is_prime[0]=is_prime[1]=false; 9 for(int i=2;i<=n;i++) 10 if(is_prime[i]) 11 { 12 prime[cnt++]=i;//边筛边记录素数 13 for(int j=2*i;j<=n;j+=i) 14 is_prime[j]=false; 15 } 16 return cnt; 17 }
时间复杂度:O(nlog2n)
以上是关于素数的快速筛法(埃氏筛法模板)的主要内容,如果未能解决你的问题,请参考以下文章