其他分享
首页 > 其他分享> > 欧拉筛模板

欧拉筛模板

作者:互联网

筛500以内的素数(其实可以筛很大),一个模板,仅供参考。

#include <stdio.h>
int prime[501];//存储素数
int visit[501];//用来筛掉合数
int top;//栈顶
int main ()
{
    for(int i=2;i<=500;i++)
    {
        if(visit[i]==0)//visit标记为0的i即判断为素数
        {
            top++;
            prime[top]=i;//存素数
        }
        for(int j=1;j<=top&&i*prime[j]<=500;j++)
        {
            visit[i*prime[j]]=1;//筛合数 ,visit标记为1的i即判断为合数
            if(i%prime[j]==0)break;
        }
    }
    for(int i=1;i<=top;i++)
    {
        printf("%d,",prime[i]);
    }
    return 0;
}

标签:int,top,visit,素数,模板,欧拉,501
来源: https://blog.csdn.net/ale_upcer/article/details/122509356