题目要求构造一个长度至少为 2 的数组 a,满足:
显然,我们要做的是:尽量用更少的数凑出 n。
给定一个正整数 n。请你找到一个长度至少为 2 的数组 a,使得数组 a 中仅包含 1 和合数(可以只包含 1,可以只包含合数,也可以同时有合数和 1),且 a 中所有元素的和为 n。如果有多个满足条件的 a,请输出长度最短的。如果有多个长度最短的 a,你可以输出任意一个。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
【名词解释】 合数:大于 1 的正整数,且有除 1 和自身外的正因子。
每个测试文件均包含多组测试数据。第一行输入一个整数 T (1≤T≤103) 代表数据组数,每组测试数据描述如下:
输入一行一个正整数 n (2≤n≤1018)。
对于每组测试数据,先输出一行一个正整数 k,表示 a 的长度。在第二行输出 k 个整数,表示 a 中的元素。如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
输入
3
8
10
2
输出
2
4 4
2
1 9
2
1 1
说明
当 n=8 时: 需要构造长度至少为 2、仅含 1 和合数、和为 8 的最短数组。 取两个合数 4+4=8,长度为 2,是最短合法数组。
当 n=10 时: 构造 1+9=10,其中 1 和 9(合数)均符合要求,数组长度为 2。
当 n=2 时: 只能拆分为 1+1=2,数组长度为 2,满足条件。