아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

설거지 도우미 뽑기

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

요약
매 단계에서 남은 수들 중 k번째마다 제거하는 규칙으로 행운의 수를 만들고, 각 질의의 n번째 행운의 수를 출력한다.
난이도

보통10점 중 5점

유형
시뮬레이션, 구현, 완전 탐색, 정수론
정답자
아직 제출이 없습니다

문제

1997/1998 남서유럽 지역 예선(독일 울름에서 개최)이 끝난 뒤, 대규모 뒷풀이 파티가 열렸다. 진행팀은 지저분해진 접시를 설거지할 도우미를 뽑기 위한 특별한 방식을 고안했다.

참가자들은 한 사람씩 뒤로 늘어서서 한 줄의 대기열을 만든다. 각 참가자는 맨 앞부터 차례대로 번호를 받는데, 첫 번째 사람은 2, 두 번째 사람은 3, 세 번째 사람은 4, 이런 식으로 2부터 연속해서 번호가 매겨진다.

먼저 대기열 맨 앞 참가자에게 번호를 묻는다(그 번호는 2다). 이 사람은 설거지에서 면제되어 계속 파티를 즐길 수 있지만, 그의 뒤에서 두 번째마다 서 있는 참가자(번호 4, 6, 8, ...)는 모두 주방으로 가야 한다. 이어서 남은 대기열의 다음 참가자가 자기 번호를 말한다. 그는 3이라고 답하고 면제되지만, 그의 뒤에서 세 번째마다 서 있는 참가자(번호 9, 15, 21, ...)가 도우미로 뽑힌다. 남은 줄의 다음 사람은 번호 5로 면제되지만, 그의 뒤에서 다섯 번째마다(번호 19, 35, 49, ...)가 선택된다. 그다음 사람은 번호 7로 면제되지만, 그의 뒤에서 일곱 번째마다가 도와야 한다. 이런 식으로 계속된다.

설거지를 돕지 않아도 되는 참가자의 번호를 행운의 수라고 부르자. 이 선택 과정을 계속하면 행운의 수는 2, 3, 5, 7, 11, 13, 17, ... 의 순서로 이어진다. 다음 대회 파티를 위해 이 행운의 수들을 구하라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 정수 nn 하나로 주어지며, 1≤n≤30001 \le n \le 3000 이다. 마지막 테스트 케이스 다음에는 입력의 끝을 알리는 00 이 하나 주어진다.

출력

각 테스트 케이스 nn 에 대해, nn 번째 행운의 수를 한 줄에 하나씩 출력한다.

예제4

  1. 예제 1

    입력
    1
    2
    10
    20
    0
    
    예상 출력
    2
    3
    29
    83
    
  2. 예제 2

    입력
    1
    0
    
    예상 출력
    2
    
  3. 예제 3

    입력
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    0
    
    예상 출력
    2
    3
    5
    7
    11
    13
    17
    23
    25
    29
    
  4. 예제 4

    입력
    3000
    0
    
    예상 출력
    33809