#CYF0049. 数字游戏(近似素数)

数字游戏(近似素数)

题目背景

这里我们创造出一类新的数字,名字叫做【近似素数】,该数字规定如果 xx 为【近似素数】,那么该数字必定可以满足以下两个条件:

  • x=pqx = p · q

  • 1<p<q1 < p < q ,并且 p,qp, q 为素数。

比如:整数 6610106=23,10=256 = 2 ·3, 10 = 2 · 5 ,其中 2<3,2<52 < 3, 2 < 52,3,52, 3, 5 为素数。

题目描述

现在给定一个 nn ,请判断 nn 是否可以表示成 44 个不同数字的和,并且其中 33 个数字是【近似素数】。

输入格式

输入多行。

第一行输入一个 tt ,代表有 tt​ 组测试数据。

对于每一组测试数据,一行输入一个正整数 nn

输出格式

输出多行。

对于每一组测试数据,按照以下方式输出:

  • 如果 nn 不是【近似素数】,直接输出 No 即可。

  • 如果 nn 是【近似素数】,需要输出 Yes ,然后在第二行输出 nn 拆成的 44 个数字(这四个数字需要满足题目所说)。

  • PSPS:对于 nn 是【近似素数】的情况,拆成的 44 个数字可能性有很多,输出的结果请保证其中的这 33​ 个【近似素数】最小,并且需要按照从小到大的顺序输出。

  • 关于最小指的是:数字 4444 其实也可以拆成 6 7 10 21 ,也可以拆成 6 10 13 15 ,但是很明显后面的三个【近似素数】 6 10 15 相比 6 10 21 更小。

样例 #1

样例输入 #1

4
7
23
31
36

样例输出 #1

No
No
Yes
1 6 10 14
Yes
5 6 10 15

提示

样例解释】:

  • 对于第一个和第二个样例,找不到符合题意的答案。
  • 对于第三个样例,31=27+25+23+131 = 2 · 7 + 2 · 5 + 2 · 3 + 1 ,其中 14,10,614, 10, 6 是【近似素数】,所以满足题意。

数据范围】:

测试点编号 nn \geq nn \leq
01 ~ 10 11 10510^5
11 ~ 15 10910^9
16 ~ 20 101810^{18}

对于 100%100\% 的数据,保证 1t103,1n10181 \leq t \leq 10^3, 1 \leq n \leq 10^{18}​​ 。