P11314 [RMI 2021] 礼物 / Present
题目背景
译自 [9th Romanian Master of Informatics, RMI 2021](https://rmi.lbi.ro/rmi_2021/) D1T2。$\texttt{4s,0.5G}$。
题目描述
> 定义一个集合 $S$ 是**好的**,当且仅当:
>
> - $S$ 为有限集合;
> - $S$ 中只包含正整数;
> - $\forall x,y\in S$,都有 $\gcd(x,y)\in S$。
>
> 注意到 $\varnothing$ **也是好的**。
> **Laikan 序**
>
> 定义好的集合 $A,B$ 满足 $A\lt B$,当且仅当下列条件至少有一个成立:
>
> - $\max A\lt \max B$;
> - $\max A=\max B\land A\backslash \{\max A\}\lt B\backslash\{\max B\}$。
>
> 特别地,定义 $\max \varnothing=-\infty$。
>
> 不难发现,对于好的集合 $S$,这总是良定义的。
你要将一个**好的**集合 $S$ 作为礼物送给你的挚友。
由于你们已经分隔 $k$ 天,你想要让这个礼物更有纪念意义。
于是,你将所有好的集合按照 **Laikan 序** 排序,得到一个无穷序列 $S_0,S_1,\cdots$。你将要把 $S_k$ 送给你的挚友。
你想要知道,你要送的集合里面的元素是什么。
输入格式
**本题单个测试点内有多组测试数据。**
第一行,一个正整数 $T$,表示测试数据组数。
接下来 $T$ 组测试数据,每组测试数据包含一行一个整数 $k$。
输出格式
对于每组测试数据,输出一行。
第一个数,表示 $|S|$。
接下来 $|S|$ 个数,**升序**输出 $S$ 中的元素。
说明/提示
对于 $100\%$ 的数据,保证:
- $1\le T\le 5$;
- $0\le k\le 1.5\times 10^9$。
| 子任务编号 | $k\le $ |得分 |
| :--: | :--: | :--: |
| $ 1 $ | $ 10^2 $ | $8$ |
| $ 2 $ | $ 10^6 $ | $21$ |
| $ 3 $ | $ 5\times 10^8 $ | $41$ |
| $ 4 $ | $ 10^9 $ | $14$ |
| $ 5 $ | $ 1.5\times 10^9$ | $16$ |