首页 > 代码库 > 筛选法求素数

筛选法求素数

筛选法求素数,不断的用3,5,7,等素数作为筛子,筛除这些数的倍数,即将合数筛除。用辅助数组p记录数i是否是素数。

vector<int> prime(int n){    vector<int> p(n+1);    for(int i=2;i<=n;i+=2)    {        if(i%2==0&&i>2)            p[i]=0;        else            p[i]=1;    }    for(int i=3;i<=(int)(sqrt((double)n));i+=2)    {        if(p[i])        for(int j=i+i;j<=n;j+=i)            p[j]=0;    }    return p;}

 

筛选法求素数