美文网首页
素数筛选法 NITOJ--127

素数筛选法 NITOJ--127

作者: 点一下我的id | 来源:发表于2019-01-16 23:40 被阅读0次

    地址

    算法思想

    1.初始化所有数都是素数
    2.i从2开始循环,根号N结束
    3.i的所有倍数都不是素数

    算法流程图

    以后补

    AC代码

    #include<iostream>
    using namespace std;
    #include<math.h>
    #define OK 1
    #define MAXSIZE 100000+5
    typedef int Status;
    typedef int ElementType;
    typedef int KeyType;
    int a[MAXSIZE];
    Status prime()
    {
        int count = 0;
        for(int i=2;i<MAXSIZE;i++)a[i]=1;
        for(int i=2;i<sqrt(MAXSIZE*1.0);i++) 
            if(a[i])
                for(int j=i<<2;j<MAXSIZE;j+=i) a[j]=0;
        for(int i=2,count=0;i<MAXSIZE;i++) a[i]?a[i]=++count:a[i]=count;
        return OK;
    }
    int main()
    {
        prime();
        int n;
        while(scanf("%d",&n)!=EOF)
        {
            printf("%d\n",a[n]);
        }
    }
    

    相关文章

      网友评论

          本文标题:素数筛选法 NITOJ--127

          本文链接:https://www.haomeiwen.com/subject/iewvdqtx.html