#include #include using namespace std; void sieve(int n, bool isprime[]) { isprime[0] = isprime[1] = false; for (int i = 2; i < n; i++) { isprime[i] = true; } for (int i = 2; i < (int)(sqrt((double)n) + 1); i++) { if (isprime[i]) { for (int j = i * 2; j < n; j += i) { isprime[j] = false; } } } } int main() { int a, d, n; bool isprime[1048576]; sieve(1048576, isprime); while (true) { cin >> a >> d >> n; if (a == 0 && d == 0 && n == 0) { break; } int c = 0; for (int i = a; ; i += d) { if (isprime[i]) { c++; if (c == n) { cout << i << endl; break; } } } } return 0; }