Przejdź do treści

Małe twierdzenie Fermata

Małe twierdzenie Fermata

Jeśli pp jest liczbą pierwszą, to dla każdej liczby całkowitej aa:

ap≡a(modp).a^p \equiv a \pmod{p}.

Jeśli dodatkowo pp nie dzieli aa, to:

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

Co mówi twierdzenie

Zapis x≡y(modm)x \equiv y \pmod{m} czytamy „xx przystaje do yy modulo mm” i znaczy tyle, że xx i yy dają tę samą resztę z dzielenia przez mm - równoważnie: mm dzieli różnicę x−yx - y.

Małe twierdzenie Fermata mówi więc: podnieś dowolną liczbę do potęgi pp (gdzie pp jest pierwsza), a reszta z dzielenia przez pp nie zmieni się. To zaskakujące - potęgowanie zmienia liczbę drastycznie, a mimo to reszta wraca na swoje miejsce.

Przykład. Weźmy p=7p = 7 i a=3a = 3:

37=2187=312⋅7+3,3^7 = 2187 = 312 \cdot 7 + 3,

więc rzeczywiście 37≡3(mod7)3^7 \equiv 3 \pmod 7. W wersji z wykładnikiem p−1p - 1:

36=729=104⋅7+1⟹36≡1(mod7).3^6 = 729 = 104 \cdot 7 + 1 \quad\Longrightarrow\quad 3^6 \equiv 1 \pmod 7.

Dowód

Pokaż dowódUkryj dowód

Dowodzimy wersji ap≡a(modp)a^p \equiv a \pmod p indukcyjnie po aa, dla aa naturalnych.

Krok 1. Lemat: dla 0<k<p0 < k < p liczba (pk)\binom{p}{k} dzieli się przez pp. Ze wzoru

(pk)=p!k! (p−k)!\binom{p}{k} = \frac{p!}{k! \, (p-k)!}

widać, że licznik zawiera czynnik pp. Mianownik jest iloczynem liczb mniejszych od pp, a pp jest pierwsza, więc żaden czynnik mianownika nie skróci się z pp. Symbol Newtona jest liczbą całkowitą, zatem po skróceniu pp nadal w nim zostaje - czyli p∣(pk)p \mid \binom{p}{k}.

Krok 2. Baza indukcji. Dla a=0a = 0 mamy 0p=0≡0(modp)0^p = 0 \equiv 0 \pmod p.

Krok 3. Krok indukcyjny. Załóżmy, że ap≡a(modp)a^p \equiv a \pmod p. Rozwijamy (a+1)p(a+1)^p dwumianem Newtona:

(a+1)p=∑k=0p(pk)ak=ap+(p1)ap−1+…+(pp−1)a+1.(a+1)^p = \sum_{k=0}^{p} \binom{p}{k} a^k = a^p + \binom{p}{1}a^{p-1} + \ldots + \binom{p}{p-1}a + 1.

Wszystkie składniki „środkowe” mają współczynnik (pk)\binom{p}{k} z 0<k<p0 < k < p, a te - na mocy lematu - dzielą się przez pp. Modulo pp znikają:

(a+1)p≡ap+1(modp).(a+1)^p \equiv a^p + 1 \pmod p.

Korzystając z założenia indukcyjnego ap≡aa^p \equiv a:

(a+1)p≡a+1(modp).(a+1)^p \equiv a + 1 \pmod p.

To jest teza dla a+1a + 1, więc indukcja jest zamknięta i ap≡a(modp)a^p \equiv a \pmod p zachodzi dla wszystkich aa naturalnych. Dla aa ujemnych wynika to z okresowości reszt.

Krok 4. Wyprowadzamy drugą wersję. Niech p∤ap \nmid a. Zapiszmy pierwszą wersję jako

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

Liczba pierwsza dzieląca iloczyn musi dzielić jeden z czynników. Ponieważ p∤ap \nmid a, musi być p∣ap−1−1p \mid a^{p-1} - 1, czyli

ap−1≡1(modp).■a^{p-1} \equiv 1 \pmod p. \qquad \blacksquare

Do czego to skraca rachunki

Twierdzenie zamienia gigantyczne potęgowanie w kilka linijek. Policzmy resztę z dzielenia 21002^{100} przez 1313.

Krok 1. 1313 jest pierwsza i 13∤213 \nmid 2, więc 212≡1(mod13)2^{12} \equiv 1 \pmod{13}.

Krok 2. Dzielimy wykładnik przez 1212: 100=8⋅12+4100 = 8 \cdot 12 + 4.

Krok 3. Rozbijamy potęgę:

2100=(212)8⋅24≡18⋅16≡16≡3(mod13).2^{100} = \left(2^{12}\right)^{8} \cdot 2^{4} \equiv 1^{8} \cdot 16 \equiv 16 \equiv 3 \pmod{13}.

Reszta wynosi 33 - bez wyliczania liczby 21002^{100}, która ma 3131 cyfr.

Twierdzenie odwrotne jest fałszywe

Kusi, żeby użyć twierdzenia jako testu pierwszości: sprawdzić, czy an−1≡1(modn)a^{n-1} \equiv 1 \pmod n, i uznać nn za pierwszą. Taki test czasem kłamie.

561=3⋅11⋅17.561 = 3 \cdot 11 \cdot 17.

W 1994 roku udowodniono, że liczb Carmichaela jest nieskończenie wiele. Dlatego w praktyce używa się mocniejszych testów - np. testu Millera-Rabina, którego liczby Carmichaela już nie zwodzą.

Po co to komu

RSA - szyfrowanie z kluczem publicznym. W RSA wiadomość mm szyfruje się jako c=me mod nc = m^e \bmod n, a deszyfruje jako m=cd mod nm = c^d \bmod n, gdzie n=p⋅qn = p \cdot q jest iloczynem dwóch dużych liczb pierwszych. To, że deszyfrowanie faktycznie odtwarza oryginał, wynika wprost z małego twierdzenia Fermata (a ściślej z jego uogólnienia - twierdzenia Eulera): wykładniki ee i dd dobiera się tak, by e⋅d≡1(mod(p−1)(q−1))e \cdot d \equiv 1 \pmod{(p-1)(q-1)}, i wtedy

cd=med≡m(modn).c^d = m^{ed} \equiv m \pmod n.

Testy pierwszości. Zanim wygeneruje się klucz RSA, trzeba znaleźć duże liczby pierwsze - sprawdzanie dzielników odpada, więc używa się testów opartych właśnie na tym twierdzeniu.

Kto i kiedy

Twierdzenie sformułował Pierre de Fermat w liście z 1640 roku, kończąc je typową dla siebie uwagą, że dowód pomija, „bo byłby zbyt długi”. Pierwszy opublikowany dowód podał Leonhard Euler w 1736 roku, a później uogólnił twierdzenie na dowolny moduł nn (twierdzenie Eulera z funkcją φ\varphi).

Przymiotnik „małe” odróżnia je od wielkiego twierdzenia Fermata o równaniu xn+yn=znx^n + y^n = z^n, które czekało na dowód aż do 1995 roku. Trzecie twierdzenie o tym nazwisku - o ekstremum - należy do analizy matematycznej; wszystkie trzy zestawia strona Twierdzenia Fermata.

Najczęstsze pytania

Czym różni się małe twierdzenie Fermata od wielkiego? Małe dotyczy reszt z dzielenia przez liczbę pierwszą i ma prosty dowód. Wielkie mówi, że równanie xn+yn=znx^n + y^n = z^n nie ma rozwiązań w liczbach naturalnych dla n>2n > 2 - jego dowód (Andrew Wiles, 1995) zajmuje ponad sto stron.

Czy twierdzenie działa dla liczb złożonych? Nie w ogólności. Dla n=4n = 4 i a=2a = 2 mamy 24=16≡0(mod4)2^4 = 16 \equiv 0 \pmod 4, a nie 22. Pierwszość modułu jest istotna - używamy jej w dowodzie w dwóch miejscach.

Co jeśli pp dzieli aa? Wtedy obie strony ap≡aa^p \equiv a przystają do zera i twierdzenie nadal jest prawdziwe. Nie zachodzi natomiast wersja ap−1≡1a^{p-1} \equiv 1 - stąd w niej dodatkowe założenie p∤ap \nmid a.

Czy z twierdzenia wynika, że liczba jest pierwsza? Nie - to najczęstsza pułapka. Twierdzenie odwrotne jest fałszywe, o czym świadczą liczby Carmichaela, np. 561561.

Jak to się ma do twierdzenia Wilsona? Oba opisują zachowanie liczb pierwszych w arytmetyce modularnej, ale twierdzenie Wilsona daje warunek równoważny pierwszości (działa w obie strony), tyle że wymaga liczenia silni - w praktyce zbyt kosztownego.

Podsumowanie