威爾遜定理

2021-05-25 17:28:52 字數 1591 閱讀 6479

而要解這個問題,使用窮舉或暴搜的方法顯然不可取。若要優雅而巧妙地解決這個問題,就需要用到乙個關於素數的著名結論——威爾遜定理(wilson's theorem)。

十八世紀中葉,一位英國法官約翰·威爾遜爵士,發現了數論中一種極為罕見的關係:

取從1到某個質數所有連續正整數的乘積,例如從1乘到11,即11的階乘11!,顯然,11!能被從1到11的所有整數整除。略去11,得10!。無疑10!不能被11整除。然而,如果給10!加上1的話,1×2×3×4×5×6×7×8×9×10+1=3628801,怎麼也不會想到,3628801卻能被11整除(3628801÷11=329891)。類似地,從1到質數7的階乘7!中略去7,再加上1,得1×2×3×4×5×6+1 = 721,721也能被7整除(721÷7=103)。

11和7都是質數,研究發現,此種整除性對一切質數都成立,但對合數卻不成立。

把上面所說的加以推廣,就得到威爾遜定理:當且僅當 n 為質數時,(n-1)!+1能被 n 整除。(逆定理也成立)

或者用公式表示為

威爾遜定理給出了判定乙個自然數是否為素數的充分必要條件。但是由於階乘是呈**增長的,其結論對於實際操作意義不大。威爾遜定理的第乙個證明是由拉格朗日給出的。

下面僅討論充分性的證明。即證明當 n 滿足上式時,n只能為素數。

首先,假設 n 不是素數,那麼令 n=a×b ,其中1 < a < n-1,1 < n < p-1。

若a≠b,因為 (n-1)!=1×2×...×a×...×b×...×n-1,

所以 (n-1)!≡ 0 (mod a);(n-1)!≡ 0 (mod b),以及 (p-1)!≡ 0 (mod a×b) ,

即 (n-1)!≡ 0 (mod n)。這與( n -1 )! ≡ -1 ( mod n )  矛盾。

若a=b

, 因為(n-1)!=1×2×...×a×......×n-1,

所以(n-1)!≡ 0 (mod a) 以及

(n-1)!≡ 0 (mod 2a)。

注意,2×

a < a×

a=n,所以(n-1)!=1×2×...×a×...×2a×......×n-1

,可得(n-1)!≡ 0 (mod a×2a) => (n-1)!≡ 0 (mod a×a) ,即 (n-1)!≡ 0 (mod n)

這與( n -1 )! ≡ -1 ( mod n )  矛盾。

所以 n 只能是素數,即充分性得證。

現在回過頭來看本文最初給出的問題。分兩種情況討論。

(1)3k+7為素數時,那麼由威爾遜定理可知

此時有(注意這裡中括號的意思已由題目中紅色方框標註的地方加以說明)

所以

(2)3k+7為合數時,那麼3k+7可以寫成3k+7=ab,那麼很明顯a和b在(3k+6)!中都會出現,所以

此時有所以解法就是篩出素數表,然後從0到10^6,判斷素數,是素數就等於前一項的值+1,不是素數就直接等於前一項的值,答案儲存到乙個陣列中即可。

Fansblog 威爾遜定理

題意 給乙個質數 p 找小於 p 的最大質數 q 並求 q modp p,q epsilon 10 9,10 題解 威爾遜定理 乙個數 n 若是質數,則有 n 1 equiv n 1 mod n 於是可以先令 ans p 1 再對 p 1 到 q 的數對 p 求逆元。p 到 q 之間的距離不會超過3...

威爾遜定理 k p

傳送門 給你乙個素數p,讓你求 k p,其中k為比p小的整數裡最大的素數。例如p 5,則k 3。p 11,則k 7。k k k 1 2 1 input第一行包含乙個整數 t 1 t 10 表示測試樣例的個數.接下來有t行,每行包含乙個素數 p 1e9 p 1e14 output對於每個測試樣例,輸出...

威爾遜定理證明

威爾遜定理 當 p 1 1 mod p 時,p 為素數。p p 1 1 即 p 1 equiv p 1 equiv 1 mod p 證明 靜下心看 先假設集合 m 集合 n 任取乙個 a in m a 一定與 p 互質。再假設乙個集合 s a cdot n 對於 forall x in n x 一定...