线性筛模板

来源:互联网 发布:淘宝口令红包怎么领 编辑:程序博客网 时间:2024/06/07 19:51
线性筛法:#include<iostream> using namespace std;const int n=200000;long prime[n]={0},num_prime=0;//num_pirme记录素数个数int main(){int m;cin>>m;    int a[n]={1,1},i,j;    for(i=2;i<m;i++)    {        if(!a[i])            prime[num_prime++]=i;        for(j=0;j<num_prime && i*prime[j]<m;j++)        {            a[i*prime[j]]=1;//合数标为1,同时,prime[j]是合数i*prime[j]的最小素因子            if(!(i%prime[j]))//即比一个合数大的质数和该合数的乘积可用一个更大的合数和比其小的质数相乘得到                break;        }    }for(i=0;i<num_prime;i++)//输出{if(i%10==0)printf("\n");printf("%3d ",prime[i]);}printf("\n");    return 0;}

0 0
原创粉丝点击