6倍原理写出来的筛法是否比欧拉更优?
查看原帖
6倍原理写出来的筛法是否比欧拉更优?
103434
此店不售此书楼主2022/5/17 00:11

rt

本地自测,6倍原理写出来的筛法比欧拉更优

理论上也应该是6倍原理筛法更优

但是没见过有人提出来这个方法,是有什么错误或弊端吗?

提交也可以正常通过,至少1e8情况下不会有漏筛错筛

求大佬解答!!!

int pr[1000010]={2,2,3};
bool is_not_pr[MAXN];
void Sieve(int n){
    for(res k=5;k<=n;k+=6){
        bool flag=0;
        if(!is_not_pr[k]){
            pr[++pr[0]]=k;
            for(res i=5;i*k<=n;i+=6){
                is_not_pr[i*k]=1;
                if((i+2)*k<=n) is_not_pr[(i+2)*k]=1;
            }
            flag=1;
        }
        if(!is_not_pr[k+2]){
            pr[++pr[0]]=k+2;
            for(res i=5;i*(k+2)<=n;i+=6){
                is_not_pr[i*(k+2)]=1;
                if((i+2)*(k+2)<=n) is_not_pr[(i+2)*(k+2)]=1;
            }
            if(flag) printf("%d and %d\n",k,k+2);
        }
    }
}
2022/5/17 00:11
加载中...