本题要求把 n 拆成三个均 ≥2 的正整数,使它们两两互质。询问多、值域大,需要 O(1) 或极小常数的构造,而不是搜索全部拆分。
链路侧要把一段流量配额 n 划分到三条连续通道。请将 n 拆成三个大于 1 的正整数 x,y,z(均 ≥2),使得 x+y+z=n,并且两两互质:
gcd(x,y)=gcd(x,z)=gcd(y,z)=1若存在多组解,写出任意一组;若不存在,写出 −1。
最大公约数(gcd):两个或多个整数共有约数中最大的一个。例如 8 与 12 的公约数有 1,2,4,其中最大的是 4,因此 gcd(8,12)=4。
第一行一个整数 q(1≤q≤100000),表示随后行数。接下来 q 行,每行一个整数 n(1≤n≤1000000000),对每个 n 逐一计算。
对每个询问写出一行:若存在解,写出一组满足条件的 x y z;否则写出 −1。若存在多个方案,可以写出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
输入
4
1
10
17
14
输出
-1
2 3 5
-1
3 4 7
说明
n=1 无法拆成三个均 ≥2 的正整数。n=10 可取 2+3+5,且两两互质。n=17 的三元拆分都会出现公约数大于 1 的一对。n=14 可取 3+4+7。
输入
3
15
23
24
输出
3 5 7
3 7 13
2 3 19
说明
15=3+5+7、23=3+7+13、24=2+3+19,各组均两两互质且和为 n。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册