阅读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