题目要求统计整数区间 [l,r] 内,满足 a<b<c<d 且 a,b,c,d∈[l,r],同时 d 能被 a,b,c 中的每一个整除的四元组个数。 这类四元组被称为“完美四元组”。
关键转化:若 d 能被 a,b,c 整除,则 a,b,c 必然是 d 的约数,并且必须小于 d。因此我们可以枚举 d 作为四元组中的最大值,然后在 d 的真约数(不含自身)中,只保留那些位于 [l,d) 的约数,设这样的约数有 k 个。从这 k 个约数中任选 3 个,按升序作为 a,b,c,即可与 d 构成一个完美四元组。方案数为组合数 C(k,3)。
于是答案为:
在整数区间 [l,r] 中,任取四个不同的整数并按从小到大排序,记为 a<b<c<d。如果最大的数 d 能被前三个数 a,b,c 中的每一个整除,则称 (a,b,c,d) 为一个“完美四元组”。
给定若干个区间,请你统计每个区间内完美四元组的数量。
题目保证测试用例的数量 t 不超过 10,区间端点满足 1≤l≤r≤105,且 r−l+1≥4。
第一行包含一个整数 t,表示测试用例的数量。 接下来 t 行,每行包含两个整数 l 和 r,表示一个区间的左右端点。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册