Przejdź do treści

Twierdzenie Wilsona

Twierdzenie Wilsona

Liczba naturalna p>1p > 1 jest pierwsza wtedy i tylko wtedy, gdy

(p−1)!≡−1(modp),(p-1)! \equiv -1 \pmod{p},

równoważnie: gdy pp dzieli liczbę (p−1)!+1(p-1)! + 1.

Co mówi twierdzenie

Silnia (p−1)!=1⋅2⋅3⋅…⋅(p−1)(p-1)! = 1 \cdot 2 \cdot 3 \cdot \ldots \cdot (p-1) to iloczyn wszystkich liczb mniejszych od pp. Twierdzenie Wilsona mówi, że reszta z dzielenia tego iloczynu przez pp rozstrzyga o pierwszości: dla liczb pierwszych wynosi zawsze p−1p - 1 (czyli −1-1), a dla złożonych - nigdy.

To rzadka sytuacja. Większość kryteriów działa tylko w jedną stronę - jak małe twierdzenie Fermata, które dają się oszukać liczbom Carmichaela. Twierdzenie Wilsona jest równoważnością: nie ma liczb, które by je zwiodły.

Przykłady na liczbach

Dla p=5p = 5:

4!=24=5⋅5−1⟹24≡−1(mod5).4! = 24 = 5 \cdot 5 - 1 \quad\Longrightarrow\quad 24 \equiv -1 \pmod 5.

Dla p=7p = 7:

6!=720=7⋅103−1⟹720≡−1(mod7).6! = 720 = 7 \cdot 103 - 1 \quad\Longrightarrow\quad 720 \equiv -1 \pmod 7.

Dla p=11p = 11:

10!=3 628 800=11⋅329 891−1⟹10!≡−1(mod11).10! = 3\,628\,800 = 11 \cdot 329\,891 - 1 \quad\Longrightarrow\quad 10! \equiv -1 \pmod{11}.

A dla liczby złożonej n=9n = 9:

8!=40 320=9⋅4480⟹8!≡0(mod9),8! = 40\,320 = 9 \cdot 4480 \quad\Longrightarrow\quad 8! \equiv 0 \pmod 9,

czyli nie −1-1 - dokładnie tak, jak zapowiada twierdzenie.

Dowód

Pokaż dowódUkryj dowód

Dowodzimy implikacji „jeśli pp jest pierwsza, to (p−1)!≡−1(p-1)! \equiv -1”. Dla p=2p = 2 sprawdzamy wprost: 1!=1≡−1(mod2)1! = 1 \equiv -1 \pmod 2. Niech dalej p≥3p \geq 3.

Krok 1. Każda liczba ma odwrotność. Dla pp pierwszej i a∈{1,2,…,p−1}a \in \{1, 2, \ldots, p-1\} istnieje dokładnie jedna liczba a−1a^{-1} z tego samego zbioru, dla której

a⋅a−1≡1(modp).a \cdot a^{-1} \equiv 1 \pmod p.

Wynika to stąd, że NWD(a,p)=1\mathrm{NWD}(a, p) = 1, więc równanie ax≡1ax \equiv 1 ma rozwiązanie (daje je algorytm Euklidesa).

Krok 2. Kto jest swoją własną odwrotnością. Szukamy aa spełniających a≡a−1a \equiv a^{-1}, czyli

a2≡1(modp)⟺(a−1)(a+1)≡0(modp).a^2 \equiv 1 \pmod p \quad\Longleftrightarrow\quad (a-1)(a+1) \equiv 0 \pmod p.

Liczba pierwsza dzieląca iloczyn musi dzielić któryś czynnik, więc a≡1a \equiv 1 albo a≡−1a \equiv -1. W naszym zbiorze są to dokładnie dwie liczby: 11 oraz p−1p - 1.

Krok 3. Resztę parujemy. Pozostałe p−3p - 3 liczby dzielą się na pary {a,a−1}\{a, a^{-1}\} o iloczynie przystającym do 11. Par jest p−32\tfrac{p-3}{2}, a ich łączny iloczyn to 11.

Krok 4. Mnożymy wszystko.

(p−1)!≡1⋅1⋅(p−1)≡−1(modp).■(p-1)! \equiv 1 \cdot 1 \cdot (p-1) \equiv -1 \pmod p. \qquad \blacksquare

Przykład parowania dla p=11p = 11. Pary to (2,6)(2,6), (3,4)(3,4), (5,9)(5,9), (7,8)(7,8) - bo 2⋅6=12≡12 \cdot 6 = 12 \equiv 1, 3⋅4=12≡13 \cdot 4 = 12 \equiv 1, 5⋅9=45≡15 \cdot 9 = 45 \equiv 1 oraz 7⋅8=56≡1(mod11)7 \cdot 8 = 56 \equiv 1 \pmod{11}. Samotne zostają 11 i 1010, a 10≡−110 \equiv -1.

Twierdzenie odwrotne - też prawdziwe

Trzeba jeszcze pokazać, że dla liczby złożonej kongruencja nie zachodzi. Niech n>4n > 4 będzie złożona.

Przypadek 1: n=abn = ab dla pewnych 1<a<b<n1 < a < b < n. Oba czynniki występują wśród 1,2,…,n−11, 2, \ldots, n-1, więc ich iloczyn nn dzieli (n−1)!(n-1)!:

(n−1)!≡0(modn).(n-1)! \equiv 0 \pmod n.

Przypadek 2: n=p2n = p^2 dla liczby pierwszej p≥3p \geq 3. W iloczynie (n−1)!(n-1)! występują wtedy obie liczby pp oraz 2p2p (bo 2p<p22p < p^2 dla p≥3p \geq 3), a ich iloczyn 2p22p^2 dzieli się przez n=p2n = p^2. Znowu (n−1)!≡0(n-1)! \equiv 0.

Jedyny wyjątek: n=4n = 4. Tutaj 3!=6≡2(mod4)3! = 6 \equiv 2 \pmod 4 - ani −1-1, ani 00. Dlatego w twierdzeniu odwrotnym zakłada się n>4n > 4.

Twierdzenie Wilsona jest więc pełnoprawnym kryterium pierwszości: reszta −1-1 oznacza liczbę pierwszą, każda inna - złożoną.

Dlaczego nie używa się go jako testu pierwszości

Skoro kryterium jest bezbłędne, dlaczego programy sprawdzające pierwszość go nie stosują? Bo policzenie (n−1)! mod n(n-1)! \bmod n wymaga około nn mnożeń. Dla liczby 300300-cyfrowej, jakich używa RSA, byłoby to około 1030010^{300} operacji - nieporównanie więcej, niż zdąży wykonać jakikolwiek komputer.

Dla porównania: naiwne dzielenie próbne potrzebuje około n\sqrt{n} operacji, a test Millera-Rabina - kilkudziesięciu potęgowań modularnych. Twierdzenie Wilsona jest więc teoretycznie idealne i praktycznie bezużyteczne. To dobra lekcja o różnicy między tym, co rozstrzygalne, a tym, co obliczalne w rozsądnym czasie.

Gdzie się przydaje

Kto i kiedy

Twierdzenie znał już około 1000 roku arabski uczony Ibn al-Hajsam (Alhazen). Nazwa pochodzi jednak od Johna Wilsona, angielskiego matematyka i późniejszego sędziego, który sformułował je około 1770 roku - bez dowodu.

Opublikował je Edward Waring, dodając, że dowód będzie trudny, bo brakuje dobrej notacji dla liczb pierwszych. Skomentował to Carl Friedrich Gauss, któremu przypisuje się uwagę, że potrzeba tu „nie notacji, lecz metod” - i podanie dowodu od ręki. Pierwszy opublikowany dowód pochodzi od Josepha Lagrange’a (1771).

Najczęstsze pytania

Czy twierdzenie działa w obie strony? Tak - i to je wyróżnia. Reszta −1-1 z dzielenia (n−1)!(n-1)! przez nn zachodzi dokładnie dla liczb pierwszych.

Dlaczego n=4n = 4 jest wyjątkiem? Bo 4=2⋅24 = 2 \cdot 2, a w iloczynie 3!=1⋅2⋅33! = 1 \cdot 2 \cdot 3 dwójka występuje tylko raz - brakuje drugiego czynnika, który dopełniłby 44. Dla większych kwadratów liczb pierwszych problem znika, bo 2p2p mieści się poniżej p2p^2.

Czym różni się od małego twierdzenia Fermata? Twierdzenie Fermata daje warunek konieczny pierwszości (i dają się je oszukać liczbom Carmichaela), a twierdzenie Wilsona - warunek równoważny. Za to Fermata liczy się szybko, a Wilsona bardzo wolno.

Czy istnieje szybszy sposób policzenia (p−1)! mod p(p-1)! \bmod p? Nie jest znany żaden istotnie szybszy niż wymnożenie po kolei. Gdyby powstał, twierdzenie Wilsona stałoby się praktycznym testem pierwszości.

Co to są liczby pierwsze Wilsona? Liczby pierwsze pp, dla których p2p^2 dzieli (p−1)!+1(p-1)! + 1 (czyli warunek zachodzi „mocniej”). Znamy tylko trzy: 55, 1313 oraz 563563 - i nie wiadomo, czy jest ich nieskończenie wiele.

Podsumowanie