#P3006. Dirichlet's Theorem on Arithmetic Progressions

Dirichlet's Theorem on Arithmetic Progressions

题目描述

如果aadd是互质的正整数,那么以aa为首项、公差为dd的等差数列,即a,a+d,a+2d,a+3d,a+4d,a, a + d, a + 2d, a + 3d, a + 4d, \dots,包含无穷多个素数。这一事实被称为狄利克雷算术级数定理,由约翰·卡尔·弗里德里希·高斯(1777-1855)首先猜想,并于1837年由约翰·彼得·古斯塔夫·勒热纳·狄利克雷(1805-1859)证明。

例如,以22为首项、公差为33的等差数列:

$2, 5, 8, 11, 14, 17, 20, 23, 26, 29, 32, 35, 38, 41, 44, 47, 50, 53, 56, 59, 62, 65, 68, 71, 74, 77, 80, 83, 86, 89, 92, 95, 98, \dots$

其中包含的素数有无穷多个:

$2, 5, 11, 17, 23, 29, 41, 47, 53, 59, 71, 83, 89, \dots$。

你的任务是,对于给定的正整数aaddnn,编写程序找出该等差数列中的第nn个素数。

输入格式

输入包含多组测试数据。每组数据占一行,包含三个用空格分隔的正整数aaddnn,其中aadd互质。数据范围满足:a9307a \leq 9307d346d \leq 346n210n \leq 210
输入以一行三个00(即0 0 00\ 0\ 0)结束,该行不构成测试数据。

输出格式

输出应包含与输入测试数据组数相同的行,每行仅包含一个整数,不得有多余字符。
对于每组输入数据aaddnn,输出对应的等差数列中的第nn个素数。
注意:在本题输入条件下,结果保证小于10610^6(一百万)。

输入样例

367 186 151
179 10 203
271 37 39
103 230 1
27 104 185
253 50 85
1 1 1
9075 337 210
307 24 79
331 221 177
259 170 40
269 58 102
0 0 0

输出样例

92809
6709
12037
103
93523
14503
2
899429
5107
412717
22699
25673

题目来源

日本2006年国内竞赛