题解·51 nod 1181

水题·

埃氏筛法打表就出来了

#include <iostream>
#include <cstdio>
using namespace std;
const int maxn=1005000;
int num[1005005];
int s[1005000];
void sushu()        //素数打表埃氏筛法
{
    for(int i=0;i<maxn;i++)
    s[i]=i;
    s[0]=0;s[1]=0;
    for (int i = 2; i<maxn; i++)
        if (s[i])
            for (int j = i + i; j<maxn; j += i)
                s[j] = 0;
}
int main()
{
    sushu();
    int k=1;
    for(int i=0;i<1005000;i++)
    {
        if(s[i]!=0)
        {
            num[k]=s[i];
            k++;
        }
    }
    for(int i=1;i<k;i++)
    {
        if(s[i]==0)
        num[i]=0;
    }
    int n;
    cin>>n;
    for(int i=1;i<k;i++)
    {
        if(num[i]>=n)
        {
            cout<<num[i]<<endl;
            break;
        }
    }
}

 

posted @ 2018-08-30 16:24  pilium  阅读(103)  评论(0)    收藏  举报