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$ |