팰린드롬 진법
면접 대비시간 제한1초메모리 제한256 MB
주어진 X에 대해 2 이상 X 미만인 모든 진법 b 중에서 X를 b진법으로 썼을 때 회문이 되는 b를 모두 구한다.
문제
사람의 손가락은 10개이므로 우리는 10진법을 사용한다. 예를 들어 은 을 의미하며, 10진법의 각 자리는 부터 까지의 값을 가진다.
10진법 외에 자주 쓰이는 진법으로는 2진법, 8진법, 16진법이 있다. 진법에서 각 자리는 부터 까지의 값을 가지며, 오른쪽에서 왼쪽으로 갈수록 각 자리의 가중치는 로 커진다.
예를 들어 10진법의 는 여러 진법에서 다음과 같이 표현된다.
- 16진법:
- 8진법: ()
- 2진법: ()
이 세 표현은 모두 팰린드롬이다. 팰린드롬이란 앞에서 읽으나 뒤에서 읽으나 같은 수열을 뜻한다. 영어 단어로는 "dad", "mom", "racecar"가, 수로는 , , 등이 팰린드롬이다.
10진법 정수 가 주어질 때, 를 진법으로 나타낸 값이 팰린드롬이 되는 모든 밑 ()를 찾는 프로그램을 작성하시오.
입력
첫째 줄에 정수 가 주어진다. ()
출력
를 진법으로 나타냈을 때 팰린드롬이 되는 모든 를 증가하는 순서대로 한 줄에 하나씩 출력한다. 그러한 가 하나도 없으면 아무것도 출력하지 않는다.