0
点赞
收藏
分享

微信扫一扫

欧拉筛的原理和代码

影子喵喵喵 2022-02-09 阅读 58

int q[N],t[N];q用于标记素数可以用bool,t用于存素数

idx=0

cin>>n;
    for(int i=2;i<=n;i++){
        if(q[i]==0){
            t[++idx]=i;保存素数
        }
        for(int j=1;t[j]*i<=n&&j<idx;j++){
            q[t[j]*i]=1;合数标记为1
            if(i%t[j]==0)break;如果i与保存了的素数呈倍数就退出循环,保证就标记一次素数,减时间
        }
    }
    for(int i=2;i<n;i++){输出
        if(q[i]==0){
            cout<<i<<" ";
        }
    }

举报

相关推荐

0 条评论