威尔逊定理
Posted qwq-qaq-tat
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了威尔逊定理相关的知识,希望对你有一定的参考价值。
一、威尔逊定理
定理 1(Wilson 定理) 假设 \\(p\\) 是素数,\\(r_1,r_2,…,r_p-1\\) 是模 \\(p\\) 的既约剩余系,那么 \\(\\operatornameW(p)=\\prod\\limits_i=1\\limits^p-1r_i\\equiv -1\\pmod p\\)。
证明:\\(p=2\\) 时结论显然成立,现在考虑 \\(p\\ge 3\\) 的情况。由于 \\(\\gcd(r_i,p)=1\\),所以我们可以知道:对于每个 \\(r_i\\) 有且仅有一个模 \\(p\\) 的逆元 \\(r_j\\)。使得 \\(r_i=r_j\\) 的充分必要条件是 \\(r_i^2\\equiv 1\\pmod p\\)。这说明 \\((r_i-1)(r_i+1)\\equiv 0\\pmod p\\)。由于素数 \\(p\\ge 3\\),所以前式相当于 \\(r_i\\equiv\\pm 1\\pmod p\\),并且这两个同余式无法同时成立。所以,在这组模 \\(p\\) 的既约剩余系中,除了 \\(r_i\\equiv \\pm 1\\pmod p\\) 的那两个元素之外,必定有逆元 \\(r_j\\ne r_i\\),所以这些一定是两两配对的。所以我们可以知道一共有 \\(r_1\\equiv 1\\pmod p\\),\\(r_p-1\\equiv -1\\pmod p\\),在 \\([2,p-2]\\) 的所有 \\(r_i\\) 都可以两两配对,组成 \\(\\fracp-12\\) 个 1。所以 \\(\\prod\\limits_i=1\\limits^p-1r_i\\equiv 1\\times -1\\times 1^\\fracp-12\\equiv -1\\pmod p\\)。
证毕
二、扩展威尔逊定理
定理 2 (扩展威尔逊定理) 对于任意正整数 \\(m\\),设 \\(c=\\varphi(m)\\),\\(r_1,…,r_c\\) 是模 \\(m\\) 的既约剩余系,\\(p\\) 是任意素数,\\(\\operatornameW(m)=\\prod\\limits_i=1\\limits^cr_i\\equiv\\begincases-1\\pmod m&m=1,2,4,p^\\alpha,2p^\\alpha\\\\1\\pmod m&\\textotherwise\\endcases\\)
首先对正整数集进行划分。
引理 假设 \\(p\\) 是任意奇素数,\\(\\alpha\\) 是任意正整数,如果 \\(m\\ne 1,2^\\alpha,p^\\alpha,2p^\\alpha\\),那么一定可以被分为 \\(m=ab,2<a<b,\\gcd(a,b)=1\\)。
证明:
因为 \\(m\\ne 1,2^\\alpha,p^\\alpha,2p^\\alpha\\) 时,我们有
\\(\\textCase \\mathrmI\\) \\(m\\) 没有质因数 2
\\(m=p_1^\\alpha_1p_2^\\alpha_2…p_k^\\alpha_k,k\\ge 2,\\alpha_i\\ge 1,3\\le p_1<p_2<…<p_k\\),可以分解为 \\(m=(p_1^\\alpha_1)(p_2^\\alpha_2…p_k^\\alpha_k)\\)。
\\(\\textCase \\mathrmII\\) \\(m\\) 有一个质因数 2
\\(m=2p_1^\\alpha_1p_2^\\alpha_2…p_k^\\alpha_k,k\\ge 2,\\alpha_i\\ge 1,3\\le p_1<p_2<…<p_k\\),可以分解为 \\(m=2(p_1^\\alpha_1p_2^\\alpha_2…p_k^\\alpha_k)\\)。
\\(\\textCase \\mathrmIII\\) \\(m\\) 有多个质因数 2
\\(m=2^\\alphap_1^\\alpha_1p_2^\\alpha_2…p_k^\\alpha_k,k\\ge 1,\\alpha\\ge 2,\\alpha_i\\ge 1,3\\le p_1<p_2<…<p_k\\),可以分解为 \\(m=2^\\alpha(p_1^\\alpha_1p_2^\\alpha_2…p_k^\\alpha_k)\\)。
证毕
证明:分类讨论即可。
\\(\\textCase \\mathrmI\\) \\(m=1,2,4\\)
自己计算一下,成立。
\\(\\textCase \\mathrmII\\) \\(m=2^l,l\\ge 3\\)
易知当 \\(l=1,2\\) 时原定理成立。现在讨论 \\(l\\ge 3\\) 的情况。由于 \\(\\gcd(r_i,2^l)=1\\),所以我们可以知道:对于每个 \\(r_i\\) 有且仅有一个模 \\(2^l\\) 的逆元 \\(r_j\\)。使得 \\(r_i=r_j\\) 的充分必要条件是 \\(r_i^2\\equiv 1\\pmod 2^l\\)。这说明 \\((r_i-1)(r_i+1)\\equiv 0\\pmod 2^l\\)。注意到 \\(\\gcd(2,r_i-1)=\\gcd(2,r_i+1)=2\\) 且 \\(\\gcd(\\fracr_i-12,\\fracr_i+12)=1\\),得知使得 \\(r_i=r_j\\) 的充分必要条件是 \\(\\fracr_i-12\\equiv 0\\pmod 2^l-2\\),或者 \\(\\fracr_i+12\\equiv 0\\pmod 2^l-2\\),也就是 \\(r_i\\equiv\\pm 1\\pmod 2^l-1\\) 因此,在这个模 \\(2^l\\) 的既约剩余系里当且仅当 \\(r_i\\equiv 1,2^l-1-1,2^l-1+1,2^l-1\\pmod 2^l\\) 时才有可能有 \\(r_i=r_j\\)。除此之外,必有 \\(r_i\\ne r_j\\),所以可以两两配对。所以,对于 \\(l\\ge 3\\),有 \\(\\operatornameW(m)=\\prod\\limits_i=1\\limits^c r_i\\equiv 1\\times (2^l-1-1)\\times (2^l-1+1)\\times (-1)\\times 1^\\fracc-42\\equiv 1\\pmod 2^l\\)。
\\(\\textCase \\mathrmII\\) 成立。
\\(\\textCase \\mathrmIII\\) \\(m=p^l,p\\ge 3,l\\ge 1\\)
由于 \\(\\gcd(r_i,p^l)=1\\),所以我们可以知道:对于每个 \\(r_i\\) 有且仅有一个模 \\(2^l\\) 的逆元 \\(r_j\\)。使得 \\(r_i=r_j\\) 的充分必要条件是 \\(r_i^2\\equiv 1\\pmod p^l\\)。这说明 \\((r_i-1)(r_i+1)\\equiv 0\\pmod p^l\\)。由于 \\(p>2\\),\\(p\\mid r_i-1,p\\mid r_i+1\\) 不可能同时成立。所以必有 \\(p^l\\mid r_i-1\\) 或者 \\(p^l\\mid r_i+1\\),得知使得 \\(r_i=r_j\\) 的充分必要条件是 \\(r_i\\equiv\\pm1\\pmod p^l\\)。因此,在这个模 \\(p^l\\) 的既约剩余系里当且仅当 \\(r_i\\equiv 1,p^l-1\\pmod p^l\\) 时才有可能有 \\(r_i=r_j\\)。除此之外,必有 \\(r_i\\ne r_j\\),所以可以两两配对。所以此时有 \\(\\operatornameW(m)=\\prod\\limits_i=1\\limits^c r_i\\equiv 1\\times (-1)\\times 1^\\fracc-22\\equiv -1\\pmod p^l\\)。
\\(\\textCase \\mathrmIII\\) 成立。
现在插播一条通知。我们知道,证明 \\(\\varphi(m)\\) 是积性函数是用这个表。
然后现在我们还要用这个表。我们要证明 \\(\\operatornameW(m)\\) 是积性函数。
首先,我们依然有一个 \\(\\gcd(a,b)=1\\) 的前提。表下方的文字已经说明了每一行是一个模 \\(a\\) 的既约剩余系,每一列是一个模 \\(b\\) 的既约剩余系。并且,整个表是一个模 \\(ab\\) 的完全剩余系。那么,整个表的乘积模 \\(ab\\) 就是 \\(\\operatornameW(ab)\\)。同时,每一行的乘积模 \\(a\\) 是 \\(\\operatornameW(a)\\),一共 \\(b\\) 行,所以 \\(\\operatornameW(ab)\\equiv \\operatornameW(a)^\\varphi(b)\\pmod a (1)\\)。
\\(\\textCase \\mathrmIV\\) \\(m=2p^l,p\\ge 3,l\\ge 1\\)
因为 \\(\\gcd(2,p^l)=1\\),由 \\((1)\\),我们可以得到同余方程组
由于 \\(\\operatornameW(p^l)\\equiv -1\\pmod p^l,\\operatornameW(2)\\equiv -1\\pmod 2,\\varphi(p^l)=(p-1)p^l-1,\\varphi(2)=1\\) 得到
由于 \\(p\\) 是奇数,所以 \\((p-1)p^l-1\\) 是偶数。所以,
所以 \\(\\operatornameW(m)\\equiv-1\\pmod 2p^l\\)
\\(\\textCase \\mathrmIV\\) 成立。
\\(\\textCase \\mathrmV\\) 当 \\(m=ab,2<a<b,\\gcd(a,b)=1\\) 时,
容易知道一个 \\(m\\) 是否符合定理约束由其一些真因数决定,才可以推出 \\(m\\),所以不存在循环论证的情况,可以形成归纳论证结构。
因为 \\(\\gcd(a,b)=1\\),由 \\((1)\\),我们可以得到同余方程组
- \\(m\\) 没有质因数 2,\\(m=p_1^\\alpha_1p_2^\\alpha_2…p_k^\\alpha_k,k\\ge 2,\\alpha_i\\ge 1,3\\le p_1<p_2<…<p_k\\),可以分解为 \\(m=(p_1^\\alpha_1)(p_2^\\alpha_2…p_k^\\alpha_k)\\)。那么有 \\(\\operatornameW(p_1^\\alpha_1)=-1,2\\mid\\varphi(p_1^\\alpha_1)\\)。
- \\(k=2\\),那么 \\(m=p_1^\\alpha_1p_2^\\alpha_2,\\operatornameW(p_2^\\alpha_2)=-1,2\\mid\\varphi(p_2^\\alpha_2)\\),\\[\\operatornameW(m)\\equiv\\begincases(-1)^0&\\pmod p_1^\\alpha_1\\\\(-1)^0&\\pmod p_2^\\alpha_2\\endcases \\]所以有 \\(\\operatornameW(m)\\equiv 1\\pmod m\\)。
- \\(k>2\\),那么 \\(m=p_1^\\alpha_1p_2^\\alpha_2…p_k^\\alpha_k,\\operatornameW(p_2^\\alpha_2…p_k^\\alpha_k)=1,2\\mid\\varphi(p_2^\\alpha_2…p_k^\\alpha_k)\\)\\[\\operatornameW(m)\\equiv\\begincases(-1)^0&\\pmod p_1^\\alpha_1\\\\1^0&\\pmod p_2^\\alpha_2…p_k^\\alpha_k\\endcases \\]所以有 \\(\\operatornameW(m)\\equiv 1\\pmod m\\)。
- \\(k=2\\),那么 \\(m=p_1^\\alpha_1p_2^\\alpha_2,\\operatornameW(p_2^\\alpha_2)=-1,2\\mid\\varphi(p_2^\\alpha_2)\\),
- \\(m\\) 有一个质因数 2,\\(m=2p_1^\\alpha_1p_2^\\alpha_2…p_k^\\alpha_k,k\\ge 2,\\alpha_i\\ge 1,3\\le p_1<p_2<…<p_k\\),可以分解为 \\(m=2(p_1^\\alpha_1p_2^\\alpha_2…p_k^\\alpha_k)\\)。那么有 \\(\\operatornameW(2)=-1,2\\not\\mid\\varphi(2),\\operatornameW(p_1^\\alpha_1p_2^\\alpha_2…p_k^\\alpha_k)=1,2\\mid\\varphi(p_1^\\alpha_1p_2^\\alpha_2…p_k^\\alpha_k)\\)\\[\\operatornameW(m)\\equiv\\begincases(-1)^0&\\pmod 2\\\\1^1&\\pmod p_1^\\alpha_1p_2^\\alpha_2…p_k^\\alpha_k\\endcases \\]所以有 \\(\\operatornameW(m)\\equiv 1\\pmod m\\)。
- \\(m\\) 有多个质因数 2,\\(m=2^\\alphap_1^\\alpha_1p_2^\\alpha_2…p_k^\\alpha_k,k\\ge 1,\\alpha\\ge 2,\\alpha_i\\ge 1,3\\le p_1<p_2<…<p_k\\),可以分解为 \\(m=2^\\alpha(p_1^\\alpha_1p_2^\\alpha_2…p_k^\\alpha_k)\\)。那么有 \\(\\operatornameW(2^\\alpha)=1,2\\mid\\varphi(2^\\alpha)\\)。\\[\\operatornameW(m)\\equiv\\begincases1^\\varphi(p_1^\\alpha_1p_2^\\alpha_2…p_k^\\alpha_k)&\\pmod 2^\\alpha\\\\\\operatornameW(p_1^\\alpha_1p_2^\\alpha_2…p_k^\\alpha_k)^0&\\pmod p_1^\\alpha_1p_2^\\alpha_2…p_k^\\alpha_k\\endcases \\]由于 \\(\\operatornameW(p_1^\\alpha_1p_2^\\alpha_2…p_k^\\alpha_k)\\equiv\\pm1\\pmod p_1^\\alpha_1p_2^\\alpha_2…p_k^\\alpha_k\\),所以可以理解为\\[\\operatornameW(m)\\equiv\\begincases1&\\pmod 2^\\alpha\\\\1&\\pmod p_1^\\alpha_1p_2^\\alpha_2…p_k^\\alpha_k\\endcases \\]所以有 \\(\\operatornameW(m)\\equiv 1\\pmod m\\)。
综上,\\(\\operatornameW(m)\\equiv 1\\pmod m\\) 总是成立。
\\(\\textCase \\mathrmV\\) 成立。
证毕
花了一天终于整理完了~ 好毒瘤啊。看不懂、有错误或者有更简便的做法的话可以联系我。
威尔逊定理x
威尔逊定理
在初等数论中,威尔逊定理给出了判定一个自然数是否为素数的充分必要条件。即:当且仅当p为素数时:( p -1 )! ≡ -1 ( mod p ),但是由于阶乘是呈爆炸增长的,其结论对于实际操作意义不大。
充分性
1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<cmath> 5 6 using namespace std; 7 8 long long int f(int p) 9 { 10 if(p==0) 11 return 1; 12 else return p*f(p-1); 13 } 14 int main() 15 { 16 int n; 17 scanf("%d",&n); 18 long long int ans=f(n-1); 19 if(ans%n==n-1) 20 printf("YES"); 21 else 22 printf("NO"); 23 return 0; 24 }
以上是关于威尔逊定理的主要内容,如果未能解决你的问题,请参考以下文章