소인수 배열

아직 제출이 없습니다시간 제한3초메모리 제한256 MB

문제

11보다 큰 모든 자연수는 소수들의 곱으로 유일하게 나타낼 수 있다. 하지만 이 소인수들을 나열하는 순서는 여러 가지가 있을 수 있다.

10=2×5=5×210 = 2 \times 5 = 5 \times 2

20=2×2×5=2×5×2=5×2×220 = 2 \times 2 \times 5 = 2 \times 5 \times 2 = 5 \times 2 \times 2

kk의 소인수를 나열하는 서로 다른 방법의 수를 f(k)f(k)라고 하면 f(10)=2f(10) = 2, f(20)=3f(20) = 3이다.

양의 정수 nn이 주어질 때, f(k)=nf(k) = n을 만족하는 kk는 항상 하나 이상 존재한다. 이러한 kk 중에서 가장 작은 값을 구하는 프로그램을 작성하시오.

입력

입력은 최대 1,000개의 테스트 케이스로 이루어지며, 각 테스트 케이스는 한 줄에 하나씩 주어진다. 각 테스트 케이스는 n<263n < 2^{63}인 양의 정수 nn이다. 입력은 파일의 끝(EOF)까지 계속된다.

출력

각 테스트 케이스마다 한 줄에 nn과, f(k)=nf(k) = n을 만족하는 가장 작은 k>1k > 1을 공백 하나로 구분하여 출력한다. 주어지는 입력은 항상 k<263k < 2^{63}인 경우만 포함한다.