我们的目标是找到一个长度 k 最小(且 k≥2)的数组,其元素之和为 n,且元素均为 1 或复杂数。为了让数组长度 k 最小,我们应该尽可能让数组中的元素值更大。
一个自然的想法是,我们能否总是用 2 个或 3 个数来表示 n?我们从最小可能的长度 k=2 开始分析,然后考虑 k=3 等情况,并根据 n 的奇偶性进行分类讨论。
1. 尝试 k=2
我们希望将 n 分解为 n=a1+a2,其中 a1 和 a2 都是1 或复杂数。
小蓝在数学课上学习了一种数字拆分游戏:给定一个大于 1 的正整数 n,你需要将它拆成若干个正整数的和。每个被加数要么为 1,要么是一个“复杂数”——即大于 1 且不是质数的整数(例如 4、6、8 等都是复杂数,因为它们可以写成两个大于 1 的整数的乘积)。要求拆分出的加数个数至少为 2,并且个数尽量少。如果有多种符合要求的最少个数方案,你可以输出任意一个。
你需要处理多组测试数据。测试组数 T 满足 1≤T≤103,每组中的整数 n 满足 2≤n≤1018。
第一行包含一个整数 T,表示测试用例的数量。 接下来 T 行,每行包含一个整数 n,表示当前用例的待拆分正整数。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册