筛选法求素数

Posted beaglebone

tags:

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

筛选法求素数,不断的用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;
}

 

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

筛选法求素数

筛选法求素数

用筛选法求100之内的素数

埃拉托色尼筛选法求素数

筛选法求n以内所有的素数

筛选法求素数