만드는 중입니다

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

선물

시간 제한4초메모리 제한1024 MB

요약
정수 K가 주어지면 최대공약수에 닫혀 있는 양의 정수 유한 집합 중 라이카 순서로 K번째 집합을 구합니다.
난이도

어려움10점 중 8점

유형
정수론, 조합론, 재귀
정답자
아직 제출이 없습니다

문제

라이카는 고원의 마녀인 친한 친구 아즈사에게 줄 선물을 만들기로 했다. 이유는 알 수 없지만, 이 선물은 양의 정수로 이루어진 유한 집합이어야 한다. 선물을 고르는 것 자체는 간단하지만 몇 가지 사정이 이를 복잡하게 만든다.

먼저 라이카의 라이벌 플라토르테는 신비한 마법으로 두 정수 xx와 yy가 주어지면 최대공약수 gcd⁡(x,y)\gcd(x, y)를 만들 수 있다. 라이카가 x,y∈Ax, y \in A이지만 gcd⁡(x,y)∉A\gcd(x, y) \notin A인 집합 AA를 선물하면, 플라토르테는 그 최대공약수를 바로 추가해 라이카를 놀릴 것이다. 따라서 선물은 플라토르테의 힘으로 더 개선할 수 없어야 한다. 즉 모든 x,y∈Ax, y \in A에 대해 gcd⁡(x,y)∈A\gcd(x, y) \in A이어야 한다.

둘째로 라이카는 선물에 특별한 의미를 담고 싶어 한다. 아즈사를 만난 지 KK일이 지났고, 라이카는 이 사실을 선물로 보여주려 한다. 그래서 위 조건을 만족하는 모든 집합을 라이칸 순서로 나열해 유한 집합의 무한 수열 S0,S1,…S_0, S_1, \dots을 얻었다. 라이카는 SKS_K를 선물하려 한다. SKS_K를 구하라.

라이칸 순서. 두 집합 AA, BB에 대해 max⁡A<max⁡B\max A < \max B이면 AA가 BB보다 앞선다. max⁡A=max⁡B\max A = \max B이면 A∖{max⁡A}A \setminus \{\max A\}가 B∖{max⁡B}B \setminus \{\max B\}보다 라이칸 순서에서 앞설 때 AA가 앞선다. 단, max⁡∅=−∞\max \emptyset = -\infty로 둔다. 양의 정수의 유한 집합에 대해 이 순서는 항상 잘 정의된다.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 이어지는 TT개의 줄에는 각각 KK의 값이 하나씩 주어진다.

출력

주어진 TT개의 KK마다 집합 SKS_K를 출력한다. 원소의 개수로 시작하는 한 줄을 출력하고, 이어서 원소를 오름차순으로 출력한다.

제한

1≤T≤51 \le T \le 5

힌트

S0=∅S_0 = \emptyset, S1={1}S_1 = \{1\}, S2={2}S_2 = \{2\}, S3={1,2}S_3 = \{1, 2\}, S4={3}S_4 = \{3\}, S5={1,3}S_5 = \{1, 3\}, S6={1,2,3}S_6 = \{1, 2, 3\}, S100={1,2,3,7,8}S_{100} = \{1, 2, 3, 7, 8\}, S1000={1,2,3,5,10,11,12}S_{1000} = \{1, 2, 3, 5, 10, 11, 12\}이다. 2,3∈{2,3}2, 3 \in \{2, 3\}이지만 gcd⁡(2,3)=1∉{2,3}\gcd(2, 3) = 1 \notin \{2, 3\}이므로 S6≠{2,3}S_6 \ne \{2, 3\}이다.

예제2

  1. 예제 1

    입력
    5
    0
    1
    2
    3
    4
    
    예상 출력
    0
    1 1
    1 2
    2 1 2
    1 3
    
  2. 예제 2

    입력
    4
    5
    6
    100
    1000
    
    예상 출력
    2 1 3
    3 1 2 3
    5 1 2 3 7 8
    7 1 2 3 5 10 11 12