만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

팰린드롬 진법

면접 대비

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

요약
주어진 X에 대해 2 이상 X 미만인 모든 진법 b 중에서 X를 b진법으로 썼을 때 회문이 되는 b를 모두 구한다.
난이도

보통10점 중 4점

유형
수학, 완전 탐색, 구현
정답자
아직 제출이 없습니다

문제

사람의 손가락은 10개이므로 우리는 10진법을 사용한다. 예를 들어 257257은 2×102+5×101+7×1002 \times 10^2 + 5 \times 10^1 + 7 \times 10^0을 의미하며, 10진법의 각 자리는 00부터 99까지의 값을 가진다.

10진법 외에 자주 쓰이는 진법으로는 2진법, 8진법, 16진법이 있다. bb진법에서 각 자리는 00부터 b−1b-1까지의 값을 가지며, 오른쪽에서 왼쪽으로 갈수록 각 자리의 가중치는 b0,b1,b2,…b^0, b^1, b^2, \dots로 커진다.

예를 들어 10진법의 99는 여러 진법에서 다음과 같이 표현된다.

  • 16진법: 99
  • 8진법: 1111 (1×81+1×80=91 \times 8^1 + 1 \times 8^0 = 9)
  • 2진법: 10011001 (1×23+0×22+0×21+1×20=91 \times 2^3 + 0 \times 2^2 + 0 \times 2^1 + 1 \times 2^0 = 9)

이 세 표현은 모두 팰린드롬이다. 팰린드롬이란 앞에서 읽으나 뒤에서 읽으나 같은 수열을 뜻한다. 영어 단어로는 "dad", "mom", "racecar"가, 수로는 99, 1111, 10011001 등이 팰린드롬이다.

10진법 정수 XX가 주어질 때, XX를 bb진법으로 나타낸 값이 팰린드롬이 되는 모든 밑 bb (2≤b<X2 \le b < X)를 찾는 프로그램을 작성하시오.

입력

첫째 줄에 정수 XX가 주어진다. (2≤X≤1,000,000,0002 \le X \le 1{,}000{,}000{,}000)

출력

XX를 bb진법으로 나타냈을 때 팰린드롬이 되는 모든 bb를 증가하는 순서대로 한 줄에 하나씩 출력한다. 그러한 bb가 하나도 없으면 아무것도 출력하지 않는다.

예제1

  1. 예제 1

    입력
    9
    
    예상 출력
    2
    8