아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

MI6

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

요약
주어진 정수를 소인수별 소수 거듭제곱으로 나누어 오름차순으로 출력합니다.
난이도

보통10점 중 5점

유형
정수론, 정렬
정답자
아직 제출이 없습니다

문제

MI6는 스파이의 신원을 확인하려고 스파이 식별 코드(Spy Identification Code, SIC)를 쓴다. 예를 들어 제임스 본드의 SIC는 77이다.

스파이 그룹은 상태 코드 하나로 나타낸다. 상태 코드는 그 그룹에 속한 모든 스파이의 SIC를 곱한 값이다. 서로 다른 스파이의 SIC는 서로 다르고, 한 그룹에 같은 스파이가 두 번 들어가지는 않는다.

상태 코드를 남김없이 쓰려고, MI6는 22 이상인 정수와 스파이 그룹이 일대일로 대응하도록 SIC를 배정한다. 즉 22 이상인 정수 cc마다 상태 코드가 cc인 그룹이 정확히 하나 있고, 서로 다른 그룹의 상태 코드는 서로 다르다. 이 조건 하나가 SIC로 쓰이는 수의 집합을 하나로 결정한다.

상태 코드가 주어지면, 상태 코드가 그 값인 그룹에 속한 스파이의 SIC를 모두 구하는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수가 주어진다. 테스트 케이스의 개수는 100100을 넘지 않는다.

각 테스트 케이스는 한 줄이며, 상태 코드 cc (2≤c≤1092 \le c \le 10^9)가 주어진다.

출력

각 테스트 케이스마다 상태 코드가 cc인 그룹에 속한 스파이의 SIC를 오름차순으로 한 줄에 출력한다. SIC 사이에는 공백을 하나 출력한다.

예제1

  1. 예제 1

    입력
    5
    7
    12
    64
    72
    1337
    
    예상 출력
    7
    3 4
    4 16
    2 4 9
    7 191