威尔逊定理指出,当且仅当自然数p> 1为素数
(p - 1) ! ≡ -1 mod p
OR (p - 1) ! ≡ (p-1) mod p
例子:
p = 5
(p-1)! = 24
24 % 5 = 4
p = 7
(p-1)! = 6! = 720
720 % 7 = 6
它是如何工作的?
1)我们可以快速检查p = 2或p = 3的结果。
2)对于p> 3:如果p是合成的,则其正除数在整数1,2,3,4,…,p-1之间,并且很显然gcd((p-1)!, p)> 1,所以我们不能拥有(p-1)! = -1(mod p)。
3)现在,让我们看看当p为质数时,它究竟是-1的情况。如果p是质数,则[1,p-1]中的所有数字都相对于p质数。并且对于范围[2,p-2]中的每个数字x,必须存在一个对y,使得(x * y)%p = 1。
[1 * 2 * 3 * ... (p-1)]%p
= [1 * 1 * 1 ... (p-1)] // Group all x and y in [2..p-2]
// such that (x*y)%p = 1
= (p-1)
它有什么用?
考虑在接近输入数的质数模的模下计算阶乘的问题,即,我们要找到“ n!”的值。 %p”,因此n
有关威尔逊定理的更多应用,请参见此内容。
参考:
https://zh.wikipedia.org/wiki/威尔逊理论
https://primes.utm.edu/notes/proofs/Wilsons.html