등차수열에 대한 디리클레 정리

시간 제한1초메모리 제한128 MB

요약
서로소인 a와 d에 대해 등차수열 a, a+d, a+2d, ... 에서 n번째 소수를 각 데이터셋마다 출력한다.
난이도

쉬움10점 중 3점

유형
정수론, 수학, 구현
정답자
아직 제출이 없습니다

문제

안녕하세요, 참가자 여러분.

양의 정수 aa와 dd가 서로소이면, aa에서 시작하여 dd씩 커지는 등차수열

a, a+d, a+2d, a+3d, a+4d, …a,\ a + d,\ a + 2d,\ a + 3d,\ a + 4d,\ \ldots

에는 소수가 무한히 많이 들어 있습니다. 이 사실은 등차수열에 대한 디리클레 정리로 알려져 있으며, 요한 카를 프리드리히 가우스(Johann Carl Friedrich Gauss, 1777-1855)가 추측하였고 1837년 요한 페터 구스타프 르죈 디리클레(Johann Peter Gustav Lejeune Dirichlet, 1805-1859)가 증명하였습니다.

예를 들어 2에서 시작하여 3씩 커지는 등차수열

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, ...

에는 다음과 같이 소수가 무한히 많이 들어 있습니다.

2, 5, 11, 17, 23, 29, 41, 47, 53, 59, 71, 83, 89, ...

여러분의 임무는 주어진 양의 정수 aa, dd, nn에 대해 이 등차수열에서 nn번째 소수를 찾는 프로그램을 작성하는 것입니다.

입력

입력은 여러 개의 데이터셋으로 이루어집니다. 각 데이터셋은 공백으로 구분된 세 양의 정수 aa, dd, nn이 적힌 한 줄이며, aa와 dd는 서로소입니다. a≤9307a \le 9307, d≤346d \le 346, n≤210n \le 210임이 보장됩니다.

입력의 끝은 공백으로 구분된 세 개의 0으로 이루어진 줄로 표시되며, 이 줄은 데이터셋이 아닙니다.

출력

각 데이터셋마다 한 줄에 정수 하나를 출력합니다. 그 값은 aa에서 시작하여 dd씩 커지는 등차수열에 들어 있는 소수 중 nn번째 소수입니다. 줄에는 그 밖의 문자가 있어서는 안 됩니다.

참고로 주어진 제약 조건에서 답은 항상 10610^6(백만)보다 작습니다.

예제1

  1. 예제 1

    입력
    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