#include<stdio.h>
int tansaku[1000000];
int sosu[1000000];

int main(void){
	int a,d,n;
	int cnt;
	int hoge;
	int i,j,k;
	int max;

//ツォツエツδ可トツスツテツネツスツづ古「ツソ
	for(i=2;i<1000000;i++){
		tansaku[i]=i;
	}
	/*
	for(i=0;i<1000000;i++){
		sosu[i]=0;
	}
	*/
	k=0;
	for(i=2;i<1000000;i++){
		if(tansaku[i]!=0){
			sosu[k]=tansaku[i];
			k++;
			tansaku[i]=0;
		}else{
			continue;
		}
		for(j=2;j<1000000;j++){
			if(tansaku[j]%sosu[k-1]==0){
				tansaku[j]=0;	
			}
		}
		for(j=999999;j>2;j--){
			if(tansaku[j]!=0){
				max=tansaku[j];
				break;
			}
		}
		if(sosu[k-1]*sosu[k-1]>=max){
			break;
		}
	}
	//k--;
	for(i=0;i<1000000;i++){
		if(tansaku[i]!=0){
			sosu[k]=tansaku[i];
			k++;
		}
	}
//ツェツエツδ可トツスツテツネツスツづ古「ツソ
	while(1){
		scanf("%d %d %d",&a,&d,&n);
		cnt=0;
		if(a==0 && d==0 && n==0){
			return 0;
		}
		if(a==1 && d==1 && n==1){
			puts("2");
			continue;
		}
		i=0;
		while(1){
			if(sosu[i]==a){//ツ素ツ青板づ個づつォ
				cnt++;
				a+=d;
			}
			else if(sosu[i]>a){//ツ素ツ青板づづ按つ「ツづつォ
				a+=d;
				i=0;
				continue;
			}
			if(cnt==n){
				printf("%d\n",sosu[i]);
				fflush(stdin);
				break;
			}
			i++;
		}
	}
	return 0;
}