#include #include // xが素数かどうか判定する関数(素数のとき1、じゃないとき0) int sosu(int x) { int i,flag; if(x<2){ // マイナス、0,1は素数じゃない return 0; }else if(x==2){ // 2は素数 return 1; }else if(x%2==0){ // 2の倍数は素数じゃない return 0; }else{ flag=1; // フラグを立てる for(i=3; i<=sqrt(x); i+=2){ // 割れるかどうかはルートnまで調べればよい if(x%i==0){ flag=0; // 割れる数があったらフラグ消す break; } } if(flag){ // フラグがたっていたら素数 return 1; }else{ return 0; } } } main() { int a,d,n,ct,p; unsigned long i; while(1){ scanf("%d %d %d", &a, &d, &n); if(a==0 && d==0 && n==0) break; // ct:素数の数をカウント // i:数列の数(初期値a, dずつ増えていく) // 終わる条件はカウントがn未満のとき ct=0; for(i=a; ct