本题要求用“只包含 1 和特殊数”的数组凑出给定整数 n,并使数组长度最短(长度至少为 2)。 做法属于构造 + 数论 + 贪心:为了最短,优先尝试用 2 个数完成(因为长度不能为 1)。若不能,再用 3 个或更多。
关键观察(特殊数定义:大于 1 且有除 1 和自身外的正因子):
给定一个正整数 n,请你构造一个长度至少为 2 的整数序列 a,序列中的每个元素必须是 1 或“特殊数”。特殊数定义为大于 1 且不是质数的正整数。序列所有元素之和必须恰好等于 n。
如果有多种满足条件的序列,请输出长度最短的一个;若长度最短的序列仍有多种,你可以输出其中任意一种。
约束:2≤n≤1018,数据组数 T 满足 1≤T≤103。
第一行包含一个整数 T (1≤T≤103),表示测试数据组数。接下来 T 行,每行包含一个整数 n (2≤n≤1018)。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册