求素数(优化线性筛法)

优化线性筛法

这个方法求素数时间复杂度几乎是线性的。

#include
using namespace std;
#define MAX 100000//求MAX范围内的素数
long long su[MAX],cnt;
bool isprime[MAX];
void prime()
{
    cnt=1;
    memset(isprime,1,sizeof(isprime));//初始化认为所有数都为素数
    isprime[0]=isprime[1]=0;//0和1不是素数
    for(long long i=2;i<=MAX;i++)
    {
        if(isprime[i])
            su[cnt++]=i;//保存素数i
        for(long long j=1;j

(本文转载自https://blog.csdn.net/stack_queue/article/details/53560887)

你可能感兴趣的:(求素数(优化线性筛法))