#include <iostream>
#include <cmath>
#define MAX 1000000
using namespace std;
void furui(bool sosu[]) // 素数を求めておく
{
sosu[0]=sosu[1]=false; // 0,1は素数じゃない
for(int i=2; i<MAX; i++){ // 2以降を素数と仮定しておく
sosu[i]=true;
}
for(int i=2; i <(int)(sqrt((double)MAX)+1); i++){
if (sosu[i]) { // 2以上に対し、素数だったら
for(int j=i*2; j<MAX; j+=i){
sosu[j]=false; // 2倍,3倍,4倍,・・を素数じゃなくする
}
}
}
}
int main()
{
int a, d, n;
bool sosu[MAX];
furui(sosu);
while (true) {
cin >> a >> d >> n;
if (a==0 && d==0 && n==0) break;
int ct=0;
for(int i=a; ; i+=d){
if(sosu[i]){
ct++;
if(ct==n){
cout << i << endl;
break;
}
}
}
}
return 0;
}