这题很明显得用素数筛法打出一个素数表 模拟一下求出第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;
}