#include <stdio.h>
#define MAX 1000000 /* 最大値 1,000,000 */

/* 素数判定表 */
int p[MAX + 1];
int PRIME = 1;
int NONPRIME = 0;

int main(void) {
	int a, b, n;
	int i, j;

	/* 素数判定表を生成する */
	p[0] = NONPRIME;
	p[1] = NONPRIME;
	for (i = 2; i <= MAX; i++) p[i] = PRIME; /* 初期化 */
	/* 素数の倍数を非素数と判定する (エラトステネスのふるい) */
	for (i = 2; i <= MAX; i++) {
		if (p[i] == PRIME) {
			for (j = i + i; j <= MAX; j += i) p[j] = NONPRIME;
		}
	}

	/* データセット毎の処理 */
	while (scanf("%d%d%d", &a, &b, &n) == 3 && a > 0 && b > 0 && n > 0) {
		/* n 番目の素数を探す */
		for (i = 0; i < n; a += b) {
			if (p[a] == PRIME) i++; /* a が素数ならこれが i 番目の素数である */
		}
		a -= b;
		printf("%d\n", a); /* 出力する */
	}

    return 0;
}