뱀파이어 숫자

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

요약
주어진 X 이상의 가장 작은 흡혈귀 수를 찾는다. 흡혈귀 수는 두 인수의 숫자를 합친 것이 자기 숫자와 정확히 같은 수다.
난이도

보통10점 중 4점

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

문제

18271827은 흥미로운 수이다. 그 이유는 1827=21×871827 = 21 \times 87이고, 좌변과 우변에 나온 숫자가 모두 같기 때문이다. 또, 136948136948도 비슷한 성질을 가지고 있다. 136948=146×938136948 = 146 \times 938이다.

이러한 수를 뱀파이어 숫자라고 한다. 즉, vv가 뱀파이어 숫자가 되려면 두 수 aa와 bb의 곱(v=a×bv = a \times b)으로 나타낼 수 있어야 하고, aa와 bb에 등장하는 숫자를 모두 모으면 (중복까지 포함하여) vv의 숫자와 같아야 한다. vv, aa, bb는 00으로 시작할 수 없다.

원래는 aa와 bb의 자리수가 같아야 하므로 vv는 짝수 자리여야 하지만, 이 문제에서는 aa와 bb의 자리수가 다른 것도 뱀파이어 숫자로 인정한다.

아래는 뱀파이어 숫자의 예이다.

126=6×21126 = 6 \times 21

10251=51×20110251 = 51 \times 201

702189=9×78021702189 = 9 \times 78021

29632=32×92629632 = 32 \times 926

수 XX가 주어졌을 때, XX보다 크거나 같은 뱀파이어 숫자 중 가장 작은 수를 찾는 프로그램을 작성하시오.

입력

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 정수 XX (10≤X≤1,000,00010 \le X \le 1{,}000{,}000)를 포함하는 한 줄로 이루어져 있다. 입력은 00이 있는 줄에서 끝난다.

출력

각 테스트 케이스에 대해, XX보다 크거나 같은 뱀파이어 숫자 중 가장 작은 수를 한 줄에 하나씩 출력한다.

힌트

뱀파이어 숫자는 실제로 존재하는 수학적 개념이다. (위키백과: 뱀파이어 수)

예제1

  1. 예제 1

    입력
    10
    126
    127
    5000
    0
    
    예상 출력
    126
    126
    153
    6880