您的位置:首页 > 其它

POJ3306 素数筛法

2013-01-07 22:04 155 查看
这题很明显得用素数筛法打出一个素数表 模拟一下求出第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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: