閱讀166 返回首頁    go 阿裏雲 go 技術社區[雲棲]


POJ3306 素數篩法

這題很明顯得用素數篩法打出一個素數表 模擬一下求出第n個素數就可以了 

水題啊。。。。

#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define max 1000005
bool isprime[max];
void getprime()
{
    long long i,j;
    memset(isprime,1,sizeof(isprime));
    isprime[1]=0;
    isprime[0]=0;
    for(i=2; i<max; i++)
        if(isprime[i])
            for(j=i*i; j<max; j+=i)
                isprime[j]=0;
}
int main()
{
    getprime();
    int a,d,n;
    while(~scanf("%d%d%d",&a,&d,&n)&&(a+d+n))
    {
        int i,sum=0;
        for(i=a; sum<n; i+=d)
            if(isprime[i])
            {
                sum++;
                if(sum==n)
                    break;
            }
        printf("%d\n",i);
    }
    return 0;
}


最後更新:2017-04-04 07:03:27

  上一篇:go GridView重複調用getView有關問題
  下一篇:go error: ‘ostream_iterator’ was not declared in this scope