/*

*/

#include<stdio.h>

#define SIZE 1000000	//?????§?????????????????°???

int Main(char list[SIZE]);
int GetPrime(char list[SIZE]);	//??¨?????????????????????????????¨??????pl????´???°???????????????????????????

int main(int argc, char *argv[]){
	char pl[SIZE];	//?´???°????????????1???????´???°???0???????´???°??§????????????-1??????????????????
	GetPrime(pl);
	while( Main(pl) == 0 );
	return 0;
}

int Main(char list[SIZE]){
	int a = 0, d = 0, n = 0, sum, count = 0;	//???????????????????±????????´???°????????????????????°?????????????????¨???????????£????´???°?????°???
	if( scanf("%d %d %d", &a, &d, &n) != 3 ){ return -1; }
	if( a == 0 || d == 0 || n == 0 ){ return 1; }
	//n??????????´???°????±??????????
	for( sum = a; sum < SIZE; sum += d ){
		//?´???°??§????????°count???1????¶???????n??????????´???°???????????????????????????????????????
		if( list[sum] == 1 ){ count++; }
		if( count == n ){ break; }
	}
	printf("%d\n", sum);
	return 0;
}

int GetPrime(char list[SIZE]){
	int i = 0, j = 0;
	for( i = 0; i < SIZE; i++ ){ list[i] = -1; }
	list[0] = 0;
	list[1] = 0;
	list[2] = 1;
	//2???????????¶??°?????¨????´???°??§????????????
	for( j = 4; j < SIZE; j+=2 ){ list[j] = 0; }
	//3??\???????\???°??????????????¨????????????????????????????????¨?????????
	for( i = 3; i < SIZE; i+=2 ){
		if( list[i] == 0 ){ continue; }
		list[i] = 1;
		for( j = 2 * i; j < SIZE; j+=i ){ list[j] = 0; }
	}
	return 0;
}