Example 1 (str 学数学) str 同学因为名字里含有一个 str,所以觉得字符串对于他来说太简单了,于是他开始了他的数学之旅。

在旅途中str遇到了刚抽到胡桃的 lyl,而 lyl 同学正沉浸在出货的喜悦之中,为了能收获双倍喜悦,他便询问 str,他选的区间内有多少个幸运数字,str觉得这个问题和字符串一样简单,于是把这个问题交给了你。

共有 T 组询问,每次给出两个正整数 L,R,你需要判断有多少 nLnR 使得方程 i=1nj=1nijn+1=n2(n1)4 成立。

请输出你得到的答案。

数据范围:1T100001LR107

样例输入:

4
1 4
2 8
1 10
1 100

样例输出:

3
3
5
26

来源:2023 年寒假集训 B 组总结赛

考场上当然是打表找规律了,但非常愚钝地没看出来……

结论是,n 是一个幸运数字,当且仅当 n+1 是一个质数。下面提供两种证明方法。

Official Solution

出题人提供的非常有技巧性的解法。

i=1nj=1nijn+1=n2(n1)4

考虑为 ijn+1 配对,

i=1nj=1nijn+1+i(nj+1)n+1=n2(n1)2i=1nj=1nijn+1+iijn+1=n2(n1)2i=1nj=1ni[n+1ij]=n2(n1)2n2(n+1)2i=1nj=1n[n+1ij]=n2(n1)2i=1nj=1n[n+1ij]=n2

即要求 n+1ij 对任意 1i,jn 成立。因此根据质数定义,n+1 就是且只能是质数了。

Alternative Solution

考场上推了一半的想法。

i=1nj=1nijn+1=n2(n1)4

注意到 amodb=abab,考虑构造取模

i=1nj=1n(n+1)ijn+1=n2(n1)(n+1)4i=1nj=1nijijmod(n+1)=n2(n1)(n+1)4(n(n+1)2)2i=1nj=1nijmod(n+1)=n2(n1)(n+1)4i=1nj=1nijmod(n+1)=n2(n+1)2

考虑固定 i,研究 j 变化下左式的情况。方便起见,我们将上式左侧 j 的取值范围扩展至 0ni=1nj=0nijmod(n+1)=n2(n+1)2 细心的读者或许已经发现,当 gcd(i,n+1)=1 恒成立,即 n+1 为质数时,ijmod(n+1) 将取遍 0n,此时左右两式相等。下面我们证明这是上式相等的充分必要条件。

仍从 ijmod(n+1) 的取值下手,我们研究如下以 jt 为变量的不定方程的解 ij+(n+1)t=m(0m<n+1) 由裴蜀定理(Bézout’s identity),方程有解的充分必要条件为 gcd(i,n+1)m。不妨记 d=gcd(i,n+1)m=kd,方程变为 ij+(n+1)t=kd(0k<n+1d) 写出该不定方程的通解 {j=j0+sn+1dt=t0sid(sZ) 不难发现,对 0k<nd,上述不定方程在 0jn 的范围内总有 d 个解,这意味着 ijmod(n+1) 将有 d 次取到 kd。故我们有 i=1nj=1nijmod(n+1)=i=1ndk=0n+1d1kd=i=1nd2k=0n+1d1k=12i=1nd2(n+1d1)n+1d=n+12i=1n(n+1d)=n2(n+1)2 化简即得 i=1n(n+1d)=n2i=1nd=ni=1ngcd(i,n+1)=n 显然上式等价于对任意 1ingcd(i,n+1)=1 恒成立。因此我们证明了 n+1 是质数是原方程成立的充分必要条件。