프로그램 명: ccc_palin
제한시간: 1 초
거의 모든 사람들은 10개의 손가락을 가지고 있습니다. 이것은 우리가 10진법에 익숙한 가장 큰 이유이기도 합니다. 257은 실제로는 2 × 10^2 + 5 × 10^1 + 7 × 10^0 인 숫자이죠. 10진법에서 각 자리의 숫자는 10보다 작은 음이 아닌 정수로 이루어져있습니다.
물론 10진법 외에도 많은 진법을 사용할 수 있습니다. 2진법, 8진법, 16진법은 다른 사람들에게 컴퓨터를 잘 한다고 자랑하곤 할 때 사용되기도 하죠. b진수로 나타내어진 숫자는 b보다 작은 음이 아닌 정수로 이루어져있고, 가장 오른쪽 자리수부터 1번째 자리라고 했을 때 b^(n-1) 을 곱하는 것으로 표현될 수 있습니다.
예를들어 10진법 9는:
-
16진법으로는 9 (9 × 16^0 = 9)
-
8진법으로는 11 (1 × 8^1 + 1 × 8^0 = 9)
-
2진법으로는 1001 (1 × 2^3 + 0 × 2^2 + 0 × 2^1 + 1 × 2^0 = 9)
10진법 9는 위의 3개의 진법으로 표현됐을 때 모두 회문임을 알 수 있습니다. 회문은 읽는 방향을 바꾸어도 변하지 않는 문자열을 말합니다. 영단어 dad, mom, racecar 등은 모두 회문입니다. 숫자에선 9, 11, 1001 같은 경우입니다.
10진수로 한 수 X가 어떤 진법 b (2 ≤ X < 1 000 000 000) 로 표현됐을 때 회문인지를 출력하는 프로그램을 작성하세요.
입력
첫 번째 줄에 X가 입력됩니다 (2 ≤ X ≤ 1 000 000 000)
출력
증가하는 순으로 한 줄마다 b를 출력합니다. b는 X를 b진법으로 표현했을 때 회문인 진법입니다. 회문일 수 있는 가장 작은 진법은 2이고, X보다 큰 진법은 언제나 회문이고 X진법은 언제나 회문이 아니기 때문에 X보다 작은 진법만 출력하면 됩니다.
입출력 예
입력
9
출력
2
8
출처:CEMC (CCC 2013 Stage 2)
번역:ladown21
[질/답]
[제출 현황]
[푼 후(1)]