//筛法求素数
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
//筛法的自己实现
int num[1000000];
//0素1合
void getPrime()
{
memset(num,0,sizeof(num));
num[0] = 1;
num[1] = 1;
for(int i = 2;i < 1000000;i++)
{
int tmp;
if(!num[i])
{
tmp = i + i;
while(tmp < 1000000)
{
num[tmp] = 1;
tmp += i;
}
}
}
}
int isPrime(int m)
{
return num[m] == 0;
}
int main()
{
int a,d,n;
getPrime();
while(scanf("%d %d %d",&a,&d,&n) == 3 && (a + d + n) != 0)
{
int count = 0;
for(int i = a;;i += d)
{
if(isPrime(i))
count++;
if(count == n)
{
printf("%d\n",i);
break;
}
}
}
return 0;
}
poj 3006
最新推荐文章于 2021-10-14 15:18:09 发布