埃氏筛法&&欧拉筛

埃氏筛法

int vis[maxn],p[maxn],cnt;
void ai(int n)
{
    for(int i=2;i<=n;i++)
     {
           if(!vis[i])
          {
                p[cnt++]=i;
                for(int j=i+i;j<=n;j+=i)
                {
                   vis[j]=1;
                }
            }
      }
}

欧拉筛

int vis[maxn],p[maxn],cnt;
void oula(int n)
{
    for(int i=2;i<=n;i++)
    {
        if(!vis[i])
        p[cnt++]=i;
        for(int j=0;i*p[j]<=n;j++)
        {
            vis[i*p[j]]=1;
            if(i%p[j]==0)
                break;
        } 
    }
}

 

posted @ 2018-10-29 18:55  huluxin  阅读(121)  评论(0编辑  收藏  举报