威尔逊定理学习笔记
定理
当且仅当 \(p\) 是质数时, \((p-1)! \equiv -1 \pmod p\) 。
证明
首先对于 \(p < 5\) 时,直接证即可。
对于 \(p \ge 5\) ,分成以下几种情况:
\(p\) 为合数但不为质数的平方。
则 \(p\) 可以表示成 \(a\times b\) ,其中 \(a,b\) 都是 \(\le p\) 的不同的整数,在 \((p-1)!\) 中出现过。
所以 \(ab | (p-1)!\) ,得 \((p-1)! \not\equiv -1 \pmod p\) ,定理成立。
\(p\) 为质数的平方。
设 \(p=t^2\) ,其中 \(t\) 是小于 \(p\) 的质数。
\(\because p \ge 5\) , \(\therefore t \ge 3\) 。
在 \(1\) 到 \(p-1\) 中,\(t\) 作为质因数出现在 \(t\), \(2t\), \(3t \dots t(t-1)\) 之中,共 \(t-1\) 个。
\(\because t \ge 3\) ,\(\therefore t-1 \ge 2\) ,\(t^2|(p-1)!\) ,故 \((p-1)! \not \equiv -1 \pmod p\) ,定理成立。
最后一种情况: \(p\) 为质数。
则 \((p-1)!=1 \times (p-1) \times [2 \times 3 \times \dots \times(p-2)]\)
\(\because\) \(p \ge 5\) 且 \(p\) 是质数,
\(\therefore\) \(2\) 到 \(p-2\) 有偶数个数。假设其中有两个数在模 \(p\) 意义下的逆元相同,设这两个数为 \(a,b\) ,逆元为 \(t\) ,则可得:
则 \(p|t(a-b)\) 。
\(\because\) \(a,b,t <p\) , \(\therefore p\not| t\) 且 \(p\not | (a-b)\) ,故 \(p\not |t(a-b)\) ,矛盾!
故 \(2\) 到 \(p-2\) 中每个数的逆元各不相同。
再证 \(2\) 到 \(p-2\) 中每个数逆元不为自己,假设 \(k\) 的逆元是它本身,则有
则 \(p|k^2-1\) ,因式分解变成 \(p|(k+1)(k-1)\) 。
则 \(p|k+1\) 或 \(p|k-1\) ,解得 \(k=1\) 或 \(k=p-1\) ,都不在 \(2\) 到 \(p-2\) 的范围内,故 \(k\) 不存在。
\(\therefore\) \(2\) 到 \(p-2\) 中每个数模 \(p\) 意义下的逆元互不相同,且不为自己,同时也在 \(2\) 到 \(p-2\) 中,于是:
得证。
一些题目
题目1: 这是一道提交答案题,\(p\) 为质数,设
求 \(\displaystyle\sum_{1 < p<10^8}S(p)\) , \(p\) 是质数。
注:这个网站可能打不开。
思路:
我们可以把上面的式子在模 \(p\) 的意义下拆一下:
看着复杂,但我们是在模 \(p\) 的意义下运算,所以每几个二次二项式的乘积对 \(p\) 取模相当于常数项对 \(p\) 取模,上式变为:
我们希望 \((p-5)!\) 可以变为 \((p-1)!\) ,这样我们就能和威尔逊定理扯上关系了,于是:
于是只用求逆元即可,复杂度 \(O(n \log p)\) ,大概跑个几秒就出来了。
题目2: 给定质数 \(p(10^9 \le p \le 10^{14})\),求出比 \(p\) 小的最大质数 \(q\) 并输出 \(q! \bmod p\)。
思路:
首先,由于 \(n\) 以内质数的期望个数是 \(\frac{n}{\ln n}\) 个,这意味这大约每 \(\ln n\) 个数都会有质数,所以我们可以直接把 \(q\) 从 \(p\) 往前枚举出来。
而判断一个数是不是质数,我们可以将 \(10^7\) 以内质数全部筛出来然后一个一个检查即可。
再考虑如何求 \(q! \pmod p\)。
其实不难,\((p-1)! \equiv q!(q+1)(q+2)\dots(p-1) \pmod p\)。
而根据威尔逊定理,\(-1 \equiv q!(q+1)(q+2)\dots (p-1) \pmod p\)。
而 \((q+1)(q+2) \dots (p-1)\) 可以在 \(p-q\),也就是大约 \(\ln n\) 内算出来。
然后求个逆元就完事了。