打表TLE,直接暴力。
code:
<span style="font-size:18px;">#include <iostream>
#include <math.h>
#include <fstream>
using namespace std;
int a, d, n;
bool flag[1000000];
int prime(int n)
{
int flag = 1;
if (n == 2)
return 1;
else if (n==1 || n % 2 == 0)
return 0;
for (int i = 3; i*i <= n; i+=2)
{
if (n%i == 0)
{
flag = 0;
break;
}
}
if (flag)
return 1;
else
return 0;
}
/*
void table()
{
memset(flag, false, sizeof(flag));
for (int i = 2; i < 1000000; i++)
{
if (prime(i))
{
flag[i] = true;
}
}
}
*/
int main()
{
fstream in("input.txt");
//table();
while (cin >> a >> d >> n)
{
if (a == d && a == n && a == 0)
break;
int j = 1,k = 1;
for (int i = a; i <= 1000000;)
{
if (prime(i))
{
j++;
if (j - 1 == n)
{
cout << i << endl;
break;
}
}
i = a + k*d;
k++;
}
}
//system("pause");
return 0;
}
</span>