Rozdział 7 Elementy teorii liczb 7.1 Podstawowe własności liczb Zakres teorii liczb to zbiór liczb całkowitych. Tak więc nie będziemy wychodzić poza ten zbiór, a jeśli się pojawi pojęcie ,,liczba”, oznaczać to będzie ,,liczba całkowita”. Czasami ograniczymy nasz zakres jeszcze bardziej, tj. do zbioru liczb naturalnych. Od czasu do czasu jednak trzeba będzie wyjść poza liczby całkowite. Wówczas do słowa ,,liczba” dodawać będziemy odpowiednie przymiotniki, np. ,,liczba wymierna” lub ,,liczba rzeczywista”. Zauważmy, że jedynym z czterech podstawowych działań arytmetycznych, którego nie można określić w zbiorze liczb całkowitych jest dzielenie. Fakt ten leży u podstaw teorii liczb i dlatego zaczynamy nasze rozważania od pewnych pojęć związanych z podzielnością. Przypuśćmy, że mamy dane dwie liczby całkowite a i b. Mówimy, że a dzieli b lub b jest wielokrotnością a (i piszemy a| b) jeśli istnieje taka liczba c, że ac = b. Jeżeli nie ma takiej liczby całkowitej c, to mówimy, że a nie dzieli b lub b nie jest wielokrotnością a (co zapisujemy a - b). Jeśli a dzieli b, to mówimy też, że a jest dzielnikiem b lub że b jest podzielna przez a. Przykłady. Ponieważ 24 = 2 · 12 = 3 · 8 = 4 · 6, więc 2|24, 8|24 oraz 4|24. Także −2|24 i −12|24 ponieważ (−2)(−12) = 24. Jeśli a|b, to −a|b. Istotnie, jeśli istnieje c takie, że ac = b, to mamy też (−a)(−c) = b, czyli −a|b. Żadna liczba różna od zera nie jest podzielna przez 0. Istotnie, gdyby zero było dzielnikiem liczby a, to istniałaby liczba c taka, że 0 · c = a. Ale to oznaczałoby, że a = 0. Z kolei wyrażenie 0|0 ma sens ponieważ dla dowolnej 1 liczby całkowitej a mamy a · 0 = 0. Z ostatniej równości wynika też, że liczba 0 jest dzielnikiem każdej liczby całkowitej. Pewne liczby mają dużo dzielników, jak na przykład 12, czy 24, a inne mniej. Na przykład liczba 29 ma tylko dwa dzielniki dodatnie: 1 i 29 oraz dwa ujemne: -1 i -29. Pokażemy teraz cztery podstawowe własności podzielności liczb. 7.1 Lemat. Dla dowolnych liczb a, b, c, x, y ∈ Z zachodzą następujące własności: (a) Jeśli a| b oraz x| y, to ax| by; (b) Jeśli a| b oraz b| c, to a| c; (c) Jeśli a| b oraz b 6= 0, to | a| ≤ | b|; (d) Jeśli a| b oraz a| c, to a| bx + cy. Nie każda liczba jest dzielnikiem a 6= 0. Jeżeli jednak mamy b 6= 0, to zawsze możemy dokonać dzielenia z resztą. W dalszej części wykładu będziemy często korzystać z następującego 7.2 Twierdzenie (o podzielności). Przypuśćmy, że a, b ∈ Z przy czym b 6= 0. Istnieją wówczas jednoznacznie określone liczby q ∈ Z oraz 0 ≤ r < | b|, takie że a = bq + r (7.1) Liczby q oraz r, które pojawiły się w treści poprzedniego twierdzenia nazywamy, odpowiednio, dzielnikiem częściowym i resztą z dzielenia a przez b. Dowód. Rozważmy zbiór S = {a − mb : m ∈ Z} . Zauważmy najpierw, że w zbiorze S jest przynajmniej jedna liczba nieujemna. Istotnie, jeśli a > b, to a−1·b > 0 i jest to liczba ze zbioru S. W przeciwnym wypadku przynajmniej jedna z liczb a−(−| a|−1)b, a−(| a|+1)b jest większa od zera (w zależności, czy b ≥ 0, czy b < 0), a obie te liczby są elementami S. Skoro w S są liczby nieujemne, to weźmy najmniejszą z nich i nazwijmy ją r. Skoro r ∈ S, to istnieje q ∈ Z, taka że r = a − qb. Wiadomo, że r ≥ 0. Przypuśćmy, że r > | b|. Wówczas r1 = r − | b| jest liczbą dodatnią 2 oraz r1 = a − (q + 1)b lub r1 = a − (q − 1)b jest dodatnim elementem zbioru S mniejszym od r. Stąd sprzeczność z wyborem r. Także r 6= | b|, bo w przeciwnym wypadku b byłoby dzielnikiem a, czyli 0 < r byłoby elementem zbioru S, a to dałoby nam ponownie sprzeczność z wyborem r. Wykazaliśmy więc istnienie liczb q i r, które spełniają 7.1. Pozostaje jeszcze udowodnić jednoznaczność liczb q i r. Przypuśćmy, że istnieją q1 oraz r1 , takie że a = q1 b + r1 przy czym 0 ≤ r1 < | b|. Zatem (q − q1 )b = r1 − r. (7.2) Ale |r1 − r| < | b|, ponieważ 0 ≤ r < | b| oraz 0 ≤ r1 < | b|. Z drugiej strony 7.2 oraz lemat 7.1(c) implikują | b| ≤ | r1 − r| lub | r1 − r| = 0. Zatem musi zachodzić druga równość, czyli r1 = r. Ale to oznacza, że (q − q1 )b = 0, a ponieważ b 6= 0, więc q − q1 = 0. Przedział, gdzie umieszczamy resztę, tj. [0, |b| − 1] można zmienić. Jedynym kryterium jest, by zawierał on |b| kolejnych liczb. Dość często wybiera się liczby z przedziału [−|b|/2; (|b| + 1)/2]. 7.2 Liczby w różnych systemach pozycyjnych Istotnym zastosowaniem twierdzenia o podzielności (7.2) jest reprezentacja liczb całkowitych w systemach pozycyjnych. Przypomnijmy, że stosowany powszechnie system zapisu liczb nazywamy systemem pozycyjnym, ponieważ znaczenie cyfry zależy od pozycji, na której się owa cyfra znajduje. Poza tym nasz system liczenia nazywamy dziesiętnym, ponieważ mamy dokładnie 10 cyfr. Liczba cyfr w systemie pozycyjnym zależy od podstawy. Dokładnie, dowolną liczbę całkowitą nieujemną n zapisujemy przy podstawie b ≥ 2 w postaci (dk−1 dk−2 . . . d1 d0 )b , (7.3) gdzie dk−1 , dk−2 , . . . , d1 , d0 są liczbami całkowitymi nieujemnymi oraz niewiększymi od b − 1 nazywanymi cyframi. Zapis ten oznacza, że n = dk−1 bk−1 + · · · + d1 b + d0 . (7.4) Jeżeli n jest liczbą ujemną to wyrażenie po prawej stronie równości (7.4) zaczęlibyśmy od znaku −. Jeżeli dk−1 nie jest zerem, to mówimy, że n jest liczbą k-cyfrową w systemie pozycyjnym o podstawie b. Jeżeli b = 10 to 3 nawiasy w (7.3) opuszczamy, gdyż wtedy mamy do czynienia ze zwykłym dziesiętnym systemem pozycyjnym. Podobnie opuścimy nawiasy gdy wybór podstawy jasno wynika z kontekstu. Zapis (7.4) nazywamy rozwinięciem liczby n przy podstawie b. Jeżeli b > 10, to pisownia niektórych cyfr jest uciążliwa (wymaga dodatkowych nawiasów) lub niejasna ((101)b można rozumieć na dwa sposoby). Dlatego dla oznaczenia cyfr 10, 11, 12, . . . używamy liter: A, B, C, . . . Oczywiście można używać liter lub innych znaków dla oznaczenia wszystkich cyfr. Wyjątek stanowi podstawa 26, która jest używana w kryptografii. Wówczas cyframi są po prostu litery alfabetu łacińskiego. Często zdarza się, że trzeba przejść od jednej podstawy systemu pozycyjnego do drugiej. Zwykle jest to przejście do podstawy 10 lub od podstawy 10. Przechodzenie do podstawy 10 polega na obliczeniu wyrażenia po prawej stronie (7.4). Gorzej jest przejść od podstawy 10 do innej podstawy. Najbardziej naturalnym sposobem jest sekwencyjne dzielenie z resztą, które zademonstrujemy na przykładzie. 7.3 Przykład. Zapiszemy liczbę 346 w systemie trójkowym, czyli przy podstawie 3. Dzielimy 346 na 3 otrzymując 115, reszta 1. Zatem 346 = 115·3+1. Teraz dzielimy 115 na 3 otrzymując 38, reszta 1. Stąd 346 = 38 · 32 + 1 · 3 + 1. Kontynuując ten proces otrzymamy 346 = 35 + 34 + 2 · 32 + 31 + 1, czyli 346 = (110211)3 . Jeżeli przechodzimy od podstawy b1 6= 10 do podstawy b2 6= 10, to można tu przechodzić pośrednio przez podstawę 10. Czasem jednak bardziej efektywne jest zapisanie b1 i cyfr w systemie o podstawie b2 oraz odpowiednie pogrupowanie. Jeżeli dodatkowo b1 jest potęgą b2 , to sposób ten jest bardzo szybki. Przykłady 7.4. Zapiszemy (548)16 w systemie dwójkowym. Ponieważ 16 = 24 , 5 = 1 · 22 + 1, 4 = 1 · 22 oraz 8 = 1 · 23 , mamy (548)16 = 5 · 162 + 4 · 16 + 8 = 1 · 210 + 1 · 28 + 1 · 26 + 1 · 23 = (10101001000)2 . 7.5. Zapiszemy n = (212021)3 w systemie o podstawie 9. Grupujemy cyfry po 2 (bo 9 = 32 ) zaczynając od prawej strony: 21, 20, 21. (Jeśli ,,nie starcza” cyfr na ostatnią grupę, dodajemy z przodu odpowiednią liczbę zer. Ponieważ (21)3 = 2 · 3 + 1 = 7, a (20)3 = 2 · 3 = 6, więc n = (767)9 . 4 Działania arytmetyczne na liczbach w systemie o podstawie b wykonujemy bez angażowania w to podstawy 10. Dodawanie, odejmowanie i mnożenie pisemne przeprowadzamy tak jak dotychczas, przy czym przy ,,pożyczaniu” bierzemy nie 10 lecz b. Także ułamki można rozwijać przy dowolnej podstawie. Mają one (skończoną lub nieskończoną postać (dk−1 dk−2 . . . d1 d0 .d−1 d−2 . . . )b . Warto tu zauważyć, że przy zmianie podstawy, mogą też zmienić się ułamki okresowe. Na przykład 0.33333 · · · = (0.1)3 , a 0.5 = (0.11111 . . . )3 . 7.3 Liczby pierwsze Dodatnią liczbę całkowitą p nazywamy pierwszą, jeżeli posiada ona dokładnie dwa dzielniki naturalne: p oraz 1. Liczby, które nie są pierwsze, nazywamy złożonymi. Od tej chwili, literę p (także ze znaczkami) rezerwujemy do oznaczenia liczb pierwszych. Liczby pierwsze stanowią najmniejsze ,,cegiełki”, z których zbudowane są liczby naturalne. Większość pytań związanych z podzielnością liczb sprowadza się do znalezienia dzielników pierwszych. Każdą liczbę naturalną n można rozłożyć na czynniki pierwsze, czyli zapisać w postaci iloczynu liczb pierwszych. Jeśli n jest liczbą pierwszą, to iloczyn ten ma tylko jeden czynnik. 7.6 Twierdzenie. Każda liczba naturalna większa od 1 jest iloczynem liczb pierwszych. Dowód (nie wprost). Przypuśćmy, że istnieją liczby naturalne, które nie są iloczynami liczb pierwszych. Niech n będzie najmniejszą z tych liczb. Nie może to być liczba pierwsza (zob. uwaga przed twierdzeniem), więc musi to być liczba złożona. Istnieją więc liczby naturalne a oraz b, dla których zachodzi n = ab i które są ostro mniejsze od n. Ponieważ n jest najmniejszą liczbą nie dającą się rozłożyć na czynniki pierwsze, więc a oraz b są iloczynami liczb pierwszych. Zatem n też musi być iloczynem liczb pierwszych i mamy sprzeczność. 7.7 Wniosek. Każda liczba całkowita różna od zera, 1 i −1 jest iloczynem −1 oraz liczb pierwszych. ¤ Okazuje się, że wspomniany rozkład liczby naturalnej na czynniki pierwsze jest jednoznaczny o czym mówi podstawowe twierdzenie arytmetyki, które dokładnie sformułujemy w dalszej części wykładu. 5 Jak stwierdzić, czy liczba n jest pierwsza? Nie jest to łatwe zadanie, zwłaszcza gdy mamy do czynienia z dużymi liczbami. Metodą, która tu się nasuwa jest dzielenie n przez kolejne liczby pierwsze w poszukiwaniu zerowej reszty. W tym ,,przesiać” liczby w poszukiwaniu kolejnych liczb pierwszych. Robimy to w następujący sposób: Krok I. Tworzymy listę pierwszych M liczb naturalnych począwszy od 2. Krok II. Pozostawiamy pierwszą niewykreśloną liczbę k na liście i wykreślamy z listy wszystkie wielokrotności k. Krok III. Powtarzamy Krok II aż wszystkie liczby większe od k będą wykreślone. Opisany wyżej algorytm nosi nazwę Sita Eratostenesa. W wyniku działania tego algorytmu otrzymujemy listę kolejnych liczb pierwszych mniejszych od M . Wróćmy teraz do naszego pytania–zadania oraz do metody rozwiązania go. Jak duże musi być M ? Na pewno wystarczy M = n. Wówczas po zastosowaniu Sita Eratostenesa stwierdzimy, czy n jest liczbą pierwszą, czy złożoną, a dzielenie przez wyszukane liczby pierwsze mniejsze od n nie będzie konieczne. Można jednak szybciej stwierdzić, czy n jest pierwsza biorąc za M √ część całkowitą (podłogę) n. 7.8 Twierdzenie. Liczba n jest pierwsza√wtedy i tylko wtedy, gdy nie jest podzielna przez żadną liczbę pierwszą p ≤ n. Dowód ⇒. oczywiste. ⇐. Jeśli n = ab, gdzie a oraz b są liczbami dodatnimi mniejszymi od n i √ większymi od z nich √ musi √ być mniejsza lub równa n. Istotnie, √ √ 1, to jedna gdyby a > n, b > n, to ab > n · n = n, skąd sprzeczność. ¥√ Dla¦ przykładu sprawdźmy, czy 127 jest liczbą pierwszą. Ponieważ mamy 127 = 11, więc stosując Sito Eratostenesa wypisujemy liczby pierwsze mniejsze lub równe 11 (2, 3, 5, 7, 11) i dzielimy 127 przez każdą z nich. 127 = 2 · 63 + 1 127 = 3 · 42 + 1 127 = 5 · 25 + 2 127 = 11 · 11 + 5. 6 x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 π(x) 0 1 2 2 3 3 4 4 4 4 5 5 6 6 x 15 16 17 18 19 20 21 22 23 24 25 26 27 28 π(x) 6 6 7 7 8 8 8 8 9 9 9 9 9 9 Rysunek 7.1: Tabela wartości funkcji π Ponieważ za każdym razem otrzymujemy niezerową resztę więc 127 jest liczbą pierwszą. Wydaje się, że inaczej być nie może: liczb pierwszych jest nieskończenie wiele. Formalny dowód tego faktu poznamy za chwilę. 7.9 Twierdzenie (Euklidesa). Istnieje nieskończenie wiele liczb pierwszych. Dowód (nie wprost). Przypuśćmy, że na poniższej liście znajdują się wszystkie liczby pierwsze p 1 , p2 , . . . , p n (7.5) i rozważmy liczbę N = p1 p2 . . . pn + 1. Zauważmy, że N nie jest podzielne przez żadną z liczb z listy 7.5. Ponieważ jednak na tej liście znajdują się wszystkie liczby pierwsze, więc N nie jest iloczynem liczb pierwszych co jest sprzeczne z twierdzeniem 7.6. Problem rozmieszczenia liczb pierwszych nie został jeszcze do końca zbadany. Nie wiadomo na przykład, czy par liczb pierwszych bliźniaczych (tj. takich, które różnią się od siebie o 2) jest nieskończenie wiele. Wiadomo, że istnieją przerwy dowolnej długości w rozmieszczeniu liczb pierwszych. Istotnie, mając daną liczbę naturalną k zauważamy, że kolejne liczby (k + 1)! + 2, (k + 1)! + 3, . . . (k + 1)! + (k + 1) są złożone. Zdefiniujemy funkcję π : N → N nadając jej w punkcie x wartość, która jest równa ilość liczb pierwszych mniejszych lub równych x. Łatwo zauważyć, że jest to funkcja niemalejąca. Kilka pierwszych jej wartości zawartych jest w tabeli 7.3. Tak więc od czasów starożytnych wiadomo, że nie ma największej liczby pierwszej. zrozumiałe jest zatem współzawodnictwo o to kto znalazł największą znaną liczbę pierwszą. We wrześniu 1985 roku rekord należał do 7 D. Slowinskiego, a jego liczba to 2216091 − 1. Ma ona 65050 cyfr. Ostatni rekord to 232582657 − 1 ustanowiony 4 września 2006 przez zespół C. Cooper’a oraz S. Boone’a. Liczba ta ma prawie 10 milionów cyfr (troszkę ponad 9,200,000). Na odkrywcę liczby pierwszej, która ma ponad 10 milionów cyfr czeka nagroda 100,000 dolarów. Aby przechytrzyć innych we współzawodnictwie znajdywania największej liczby pierwszej niektórzy podejmowali próby stworzenia formuły, która ,,produkowałaby” nowe liczby pierwsze ze znanych już liczb pierwszych. I tak, n w 1640 roku Fermat zauważył, że liczby postaci 22 + 1 są pierwsze dla n = 1, 2, 3, 4 i wyraził przypuszczenie że jest tak też i dla n > 4. Obecnie liczby te nazywają się liczbami Fermata i oznaczamy je przez Fn . Już Euler pokazał, że F5 = 4294967297 = 641 · 6700417. Obecnie wiadomo, że dla 5 ≤ n ≤ 20 liczby Fermata Fn są złożone. Jak jest dalej – nie wiadomo. Liczby postaci 2p − 1, gdzie p jest liczbą pierwszą nazywają się liczbami Mersenne’a i oznaczamy je przez Mp . W 1644 roku Mersenne pisał, że dla p = 2, 3, 5, 7, 13, 17, 19, 31, 67, 127 i 257 liczby Mp są pierwsze, a dla pozostałych p < 257 złożone. Okazało się, że nie jest to w pełni prawdziwe, ponieważ M67 oraz M257 są złożone, natomiast M61 , M89 i M107 są pierwsze. Dzisiaj znamy już 34 liczby pierwsze Mersenne’a. Została postawiona hipoteza, że liczb tych jest nieskończenie wiele. Siedemnastego stycznia 1968 roku liczba 211213 − 1 ukazała się na stemplu pocztowym w mieście Urbana (USA). Dziesięć lat później kolejna liczba pierwsza 221701 − 1 została odkryta przez dwoje uczniów z jednego z kalifornijskich liceów. Odpowiedni program potrzebował 440 godzin na realizację. Największa znana liczba pierwsza jest czterdziestą czwartą z kolei liczbą pierwszą Mersenne’a. 7.4 Podstawowe twierdzenie arytmetyki Jak już pokazaliśmy (por. twierdzenie 7.6), każda liczba naturalna może być przedstawiona w postaci iloczynu liczb pierwszych. Na przykład, 21 = 3 · 7 60 = 22 · 3 · 5 144 = 24 · 32 Wydaje się, że powyższe rozkłady są jednoznaczne, tj. są to jedyne sposoby zapisu liczb 21, 60 i 144 w postaci iloczynu liczb pierwszych (zmianie może 8 ulec tylko porządek tych liczb pierwszych). Jeżeli ktoś ma wątpliwości co do tego, to zostaną one szybko rozwiane po przeanalizowaniu dzielników powyższych liczb. Czy jest tak dla każdej liczby naturalnej? Odpowiedź na to pytanie stanowi podstawę arytmetyki i teorii liczb. 7.10 Twierdzenie (Podstawowe twierdzenie arytmetyki). Każda liczba naturalna większa od 1 może być zapisana jednoznacznie w postaci iloczynu liczb pierwszych. Grupując liczby pierwsze z rozkładu n w potęgi otrzymujemy następujący 7.11 Wniosek. Każda liczba całkowita różna od zera daje się zapisać w postaci potęg −1 i różnych liczb pierwszych. ¤ Zasadnicze twierdzenie arytmetyki ma wiele konsekwencji, które dostrzeżemy w dalszej części wykładu. Obecnie zajmiemy się podzielnością liczb. 7.12 Lemat. Przypuśćmy, że a = (−1)α0 pα1 1 pα2 2 . . . pαr r . Liczba całkowita b 6= 0 dzieli liczbę a wtedy i tylko wtedy, gdy b = ±pβ1 1 pβ2 2 . . . pβr r , gdzie 0 ≤ βi ≤ αi oraz 1 ≤ i ≤ r. Powyższy lemat daje nam możliwość dość szybkiego wypisania wszystkich dzielników liczby, której rozkład znamy. Na przykład, skoro 144 = 24 · 32 , więc (dodatnimi) dzielnikami 144 są 20 · 30 , 21 · 30 , 22 · 30 , 23 · 30 , 24 · 30 , 20 · 31 , 21 · 31 , 22 · 31 , 23 · 31 , 24 · 31 , 20 · 32 , 21 · 32 , 22 · 32 , 23 · 32 , 24 · 32 . 7.13 Twierdzenie. Niech a, b ∈ Z. Wówczas jeżeli p | ab, to p | a lub p | b. Dowód. Z podstawowego twierdzenia arytmetyki wynika, że liczba p występuje w rozkładzie ab, zatem musi ona wystąpić w rozkładzie liczby a lub w rozkładzie liczby b. 9 7.5 Największy wspólny dzielnik Największym wspólnym dzielnikiem (NWD) liczb a oraz b, które nie są jednocześnie równe 0 nazywamy liczbę d spełniającą poniższe warunki: NWD1 d | a oraz d | b; NWD2 jeżeli c | a oraz c | b, to c ≤ d. Największy wspólny dzielnik liczb a oraz b zapisujemy NWD(a, b). Zauważmy, że ponieważ każda liczba całkowita różna od 0 dzieli 0, więc wartość NWD(0, 0) nie jest zdefiniowana. Natomiast, jeśli a 6= 0, to NWD(a, 0) = | a|. Zauważmy, że NWD(6, 35) = 1. Liczby 6 oraz 35 są względnie pierwsze. Dokładnie, dwie liczby całkowite nazywamy względnie pierwszymi lub kopierwszymi, jeżeli ich największy wspólny dzielnik jest równy 1. Zauważmy jeszcze, że ponieważ jeśli d | a, to −d | a, więc największy wspólny dzielnik zawsze jest liczbą dodatnią. 7.14 Lemat. Przypuśćmy, że a, b ∈ Z nie są jednocześnie równe 0. Zachodzą następujące własności. (a) NWD (a, b) = NWD(b, a); (b) NWD (a, b) = NWD(−a, b); (c) NWD (a, b) = NWD(a − b, b); (d) jeżeli NWD (a, b) = d, to NWD ¡a d , b d ¢ = 1. Dowód. Własności (a) oraz (b) wynikają natychmiast z definicji. Aby udowodnić własność (c), zauważmy że jeśli d = NWD(a, b), to d | a − b oraz d | b, więc na podstawie warunku NWD2, mamy d ≤ NWD(a − b, b). Podobnie, jeśli d0 = NWD(a − b, b), to ponieważ a = a − b + b, więc d0 | a oraz d0 | b. Zatem d0 ≤ NWD(a, b). Ostatecznie mamy NWD(a, b) = d = d0 = NWD(a − b, b). Aby własność (d) będziemy postępować nie wprost. Załóżmy, że ¡ a bpokazać ¢ 0 NWD , = d > 1. Zatem d0 | ad i d0 | db . Stąd wynika istnienie takich liczb d d k oraz l, że d0 dk = a i d0 dl = b, czyli d0 d dzieli zarówno a jak i b. Tak więc d0 d ≤ d, a co za tym idzie, d0 ≤ 1 skąd sprzeczność. Własność (c) powyższego lematu stanowi podstawę algorytmu znajdywania NWD, który przedstawimy później. Zauważmy, że wraz z własnościami (a), (b) własność (c) daje następujący 10 7.15 Wniosek. Dla dowolnych liczb całkowitych a, b, x, y takich, że ax + by 6= 0 6= a2 + b2 mamy NWD (a, b) = NWD(ax + by, b) = NWD(a, ax + by).¤ Tak więc największy wspólny dzielnik dwóch liczb dzieli każdą kombinację liniową tych dwóch liczb. W szczególności, jeśli dla liczb a oraz b znajdziemy takie liczby całkowite x i y, że ax + by = 1, to NWD(a, b) = 1. Powyższy wniosek zapiszmy w nieco innej formie, która będzie nam potrzebna później 7.16 Wniosek. Dla dowolnych liczb całkowitych a, b, x, y, dla których spełnione jest a2 + b2 6= 0, zachodzi relacja NWD(a, b)|ax + by. ¤ 7.17 Przykład. Dla dowolnej liczby naturalnej k, liczby 6k + 1 oraz 5k + 4 są względnie pierwsze. Istotnie, 5(6k + 5) − 6(5k + 4) = 1. Okazuje się, że można osiągnąć więcej niż napisaliśmy powyżej. Mianowicie NWD dwóch liczb też można zapisać w postaci kombinacji liniowej tych liczb. Fakt ten będziemy używać wielokrotnie w dalszej części wykładu. 7.18 Twierdzenie. Dla dowolnych dwóch liczb całkowitych a, b ∈ Z, które nie są równocześnie równe zeru, istnieją takie liczby całkowite x i y, że NWD (a, b) = ax + by Dowód. Możemy założyć, że zarówno a jak i b są dodatnie, gdyż pozostałe przypadki są albo trywialne, albo sprowadzają się do rozważanego. Rozważmy zbiór S = {am + bn : m, n ∈ Z} . Wobec naszego założenia, w S istnieją liczby dodatnie. Niech d będzie najmniejszą z nich. Istnieją zatem liczby całkowite x oraz y, takie że d = ax + by. Ponieważ a = a · 1 + b · 0 > 0 oraz b = a · 0 + b · 1 > 0, więc a, b ∈ S i d < a oraz d < b. Pokażemy, że d spełnia warunek NWD1. W tym celu zapiszmy a = qd + r, gdzie 0 ≤ r < d. Ale wówczas mamy r = a − qd = (1 − qx)a − qyb. Ponieważ r ∈ S oraz r < d, więc r musi być równy 0, czyli d | a. Podobnie pokazujemy, że d | b. Przypuśćmy teraz, że c | a oraz c | b. Zatem c | ax + by, czyli c | d, a z lematu 7.1 wynika, że c ≤ d. Zatem NWD2 jest spełniony i d = NWD(a, b). 11 7.19 Wniosek. Jeśli d = NWD(a, b) oraz c | a, c | b, to c | d. Dowód. Z twierdzenia 7.18 mamy istnienie liczb całkowitych x, y, takich że d = ax + by. Skoro c | a oraz c | b więc z lematu 7.1 mamy c | d. 7.6 Najmniejsza wspólna wielokrotność Najmniejszą wspólną wielokrotnością (NWW) liczb a oraz b, które są różne od zera nazywamy dodatnią liczbę w spełniającą poniższe warunki: NWW1 a | w oraz b | w; NWW2 jeżeli a | c oraz b | c, to w ≤ c. Zauważmy, że założenie w > 0 jest tu kluczowe, ponieważ gdybyśmy dopuścili liczby ujemne, to wśród wspólnych wielokrotności liczb a i b nie znaleźlibyśmy liczby najmniejszej. Zauważmy, że ponieważ nie wolno dzielić przez 0, więc nie definiujemy NWW liczb, z których choć jedna jest równa 0. Podstawowe własności NWW są zawarte w poniższym lemacie. 7.20 Lemat. Przypuśćmy, że a, b ∈ Z są różne od 0. Zachodzą następujące własności. (a) NWW (a, b) = NWW(b, a); (b) NWW (a, b) = NWW(−a, b); (c) NWW (a, b) ≤ | ab|; (d) jeżeli a | b, to NWW (a, b) = | b|.¤ Najmniejsza wspólna wielokrotność nie ma tak dużego znaczenia jak największy wspólny dzielnik. Zwykle wprowadza się NWW jako uzupełnienie do NWD. Przytoczymy teraz kilka twierdzeń, które łączą te dwa pojęcia, lub wykorzystują NWW w dowodach własności NWD. 7.21 Twierdzenie. Przypuśćmy, że a = pα1 1 pα2 2 . . . pαk k oraz b = pβ1 1 pβ2 2 . . . pβkk , gdzie ai ≥ 0, bi ≥ 0, 1 ≤ i ≤ k. Wówczas min(α1 ,β1 ) min(α2 ,β2 ) min(αk ,βk ) p2 . . . pk max(α1 ,β1 ) max(α2 ,β2 ) max(αk ,βk ) p1 p2 . . . pk NWD (a, b) = p1 (7.6) NWW (a, b) = (7.7) 12 3593700 15246 1796850 7623 898425 7623 299475 2541 99825 847 33275 847 6655 847 1331 847 1331 121 121 11 11 1 1 1 2 2 3 3 3 5 5 7 11 11 11 Rysunek 7.2: Obliczenia dla NWD i NWW W powyższym twierdzeniu ,,wyrównaliśmy” rozkłady liczb a i b, tj. liczby pierwsze, które występują w rozkładzie b, a nie występują w rozkładzie a zapisaliśmy w rozkładzie a z wykładnikami równymi 0 i vice versa. Twierdzenie to daje nam algorytm na obliczanie NWD i NWW dwóch liczb a i b. Aby zastosować ten algorytm, piszemy nasze liczby obok siebie i dzielimy je (bez reszty – jeśli jest to niewykonalne, to nie dzielimy) przez kolejne liczby pierwsze. Jeśli p - a i p - b, to liczby p nie bierzemy pod uwagę. Jeśli p | b lub p | a, to p jest czynnikiem wspólnej wielokrotności liczb a i b. Jeżeli p | a i p | b, to p jest czynnikiem NWD(a, b). W praktyce wygląda to jak na rysunku 7.2 (czynniki, które liczą się tylko do NWD umieściliśmy w kwadracie). Mamy (3593700, 15246) = 2 · 32 · 112 2 3 2 3 NWW(3593700, 15246) = 2 · 3 · 5 · 7 · 11 NWD = 2178 = 25155900. Ponieważ min(α, β) + max(α, β) = α + β, więc zachodzi następujący 7.22 Wniosek. Dla dowolnych, różnych od zera liczb całkowitych a, b zachodzi następujący wzór NWD (a, b)NWW(a, b) = | ab|.¤ Następny wniosek jest uogólnieniem twierdzenia 7.13. 13 7.23 Wniosek. Jeżeli a | bc oraz NWD (a, c) = 1, to a | b. Dowód. Ponieważ NWD(a, c) = 1, więc istnieją liczby całkowite x, y, takie że ax + cy = 1. Stąd mamy abx + bcy = b. Ponieważ a | abx oraz a | bcy (skoro a | c), więc a | b. 7.7 Algorytm Euklidesa Przedstawiony w poprzednim rozdziale algorytm znajdywania NWD jest dosyć kłopotliwy. W rezultacie sprowadza on się do znalezienia rozkładu liczb na czynniki pierwsze, co przy dużych liczbach staje się problemem bardzo trudnym. Okazuje się że istnieje dość prosty algorytm, który działa dość szybko. Mając dane dwie liczby naturalne a oraz b, takie że |a| > |b|, przyjmujemy r−1 = a, r0 = b a następnie definiujemy rekurencyjnie liczby r1 , r2 , . . . jako kolejne reszty z dzielenia rk−1 przez rk . Mamy zatem rk−1 = qk+1 rk + rk+1 . (7.8) Zauważmy, że dla pewnego n mamy rn = 0 ponieważ | · | przyjmuje tylko wartości nieujemne oraz |rk | > |rk+1 |. Pokażemy, że ostatni niezerowy element ciągu {rk } to NWD(a, b). 7.24 Twierdzenie. Jeżeli ciąg {rk } jest zdefiniowany przez (7.8) oraz zachodzi nierówność |r−1 | > |r0 |, to rn−1 ∼ NWD(a, b) = NWD(r−1 , r0 ), przy czym liczba n jest najwcześniejszym indeksem, dla którego rn = 0. Dowód. Zauważmy, że ponieważ rn = 0, to rn−1 | rn oraz rn−1 | rn−1 . Z (7.8) wynika zatem, że rn−1 dzieli każdą z liczb rn−2 , rn−3 , . . . , r−1 . W szczególności rn−1 | NWD(a, b). Teraz mamy, że NWD(a, b) | r−1 oraz NWD(a, b) | r0 . Ponownie stosując wzór (7.8) dochodzimy do relacji NWD(a, b) | rn−1 . Zatem, ostatecznie NWD(a, b) jest równy rn−1 . Powyższe twierdzenie stanowi podstawę Algorytmu Euklidesa. Algorytm ten polega na sekwencyjnym obliczaniu reszt z dzielenia aż otrzymamy resztę zerową. Ostatnia niezerowa reszta to NWD. 14 7.25 Przykład. Obliczymy dzielenia z resztą: NWD (54, 21). W tym celu wykonujemy kolejne 54 = 2 · 21 + 12 21 = 1 · 12 + 9 12 = 1 · 9 + 3 9 = 3 · 3 + 0. (7.9) Ostatnią niezerową resztą jest 3. Zatem NWD(54, 21) = 3. Działanie algorytmu można czasami przyśpieszyć dopuszczając ujemne reszty, a mianowicie, 54 = 3 · 21 − 9 21 = 2 · 9 + 3 9 = 3 · 3 + 0. (7.10) Zauważmy, że w (7.10) wykonaliśmy trzy dzielenia, czyli o jedno dzielenie mniej niż w (7.9). Jak wiadomo z twierdzenia 7.18, dla dowolnych dwóch liczb a, b istnieją x, y, takie że ax+by = NWD(a, b). Twierdzenie 7.18 nie daje jednak algorytmu na znalezienie elementów x oraz y. Z drugiej strony, elementy te są bardzo przydatne. Na szczęście, można je znaleźć analizując dzielenia z algorytmu Euklidesa. Na przykład, 9 = 3 · 21 + (−1) · 54 3 = 1 · 21 + (−2) · 9. Stąd NWD (54, 21) = 3 = 1 · 21 + (−2) · 9 = 1 · 21 + (−2) · (3 · 21 + (−1) · 54) = (−5) · 21 + 2 · 54 i szukanymi liczbami x, y są −5 i 2. 15 7.8 Podstawy arytmetyki modulo m Podstawową ideą arytmetyki jest zredukowanie skomplikowanych obliczeń. Jednym ze sposobów jest zastąpienie działań na liczbach przez działania na resztach z dzielenia tych liczb przez inną liczbę. Na przykład, aby stwierdzić jaka jest ostatnia cyfra sumy 128+345 nie trzeba wykonywać całego dodawania, tylko dodać ostatnie cyfry liczb 128 i 345, tj. reszty z dzielenia tych liczb przez 10. Otrzymujemy 8 + 5 = 13, czyli ostatnią cyfrą naszej sumy jest 3. Sprawdźmy teraz, czy liczba 223837653 jest kwadratem innej liczby. Jeśli tak, to jej ostatnią cyfrą jest jedna z ostatnich cyfr liczb 0 · 0 = 0, 1 · 1 = 1, 2 · 2 = 4, 3 · 3 = 9, 4 · 4 = 16, 5 · 5 = 25, 6 · 6 = 36, 7 · 7 = 49, 8 · 8 = 64, 9 · 9 = 81, czyli 0, 1, 4, 5, 6 lub 9. Ponieważ 3 tam nie ma, więc 223837653 nie jest kwadratem liczby całkowitej. Wprowadźmy teraz oznaczenie m mod n dla reszty z dzielenia liczby całkowitej m przez liczbę całkowitą n różną od zera. Z działania tego korzystamy często w życiu codziennym: Jeśli teraz jest godzina 10.45, to za pół godziny będzie godzina 11 minut (45 + 30) mod 60, czyli 15. Symbol ,, mod ” oznacza działanie arytmetyczne. Kiedy w następniku tego działania ustalimy liczbę m, a za poprzednik będziemy brali kolejne liczby całkowite, to zauważymy, że wynik działania powtarza się co m liczb. Liczby, które dają ten sam wynik, gdy podziała się na nie tą samą liczbą m, nazywamy przystającymi modulo m. Przypuśćmy, że a, b, m 6= 0 są liczbami całkowitymi. Mówimy, że a przystaje do b modulo m, co zapisujemy a≡b (mod m), (7.11) jeśli m | a − b. Zapis 7.11 nazywamy kongruencją. liczbę m nazywamy modułem kongruencji. 7.26 Przykład. Ponieważ 9 | 23 − 14, więc 23 ≡ 14 (mod 9). Mamy też 23 ≡ 14 (mod 3). Każde dwie liczby ze zbioru {. . . , −4, 5, 14, 23, 32, . . . } przystają do siebie modulo 9. Każde dwie liczby całkowite a oraz b przystają do siebie modulo 1 oraz modulo −1. Mamy więc a ≡ b (mod 1) oraz a ≡ b (mod −1). Ponieważ a ≡ b (mod m) implikuje a ≡ b (mod −m), więc rozważamy tylko dodatnie moduły. Zauważmy, że kongruencja (7.11) oznacza, że a oraz b dają takie same reszty przy dzieleniu przez m, czyli a mod m = b mod m. Istotnie, zapiszmy 16 a = q1 m + r1 , b = q2 m + r2 , gdzie 0 ≤ r1 < m, 0 ≤ r2 < m. Stąd a mod m = r1 , b mod m = r2 . Zatem a − b = m(q1 − q2 ) + (r1 − r2 ). Skoro m | a − b, więc m | r1 − r2 . Ponieważ | r1 − r2 | < m, więc r1 − r2 = 0. Jeżeli m - a − b, to fakt ten zapisujemy a 6≡ b (mod m) i mówimy, że a nie przystaje do b modulo m. Ustalmy teraz liczbę m i zdefiniujmy na zbiorze Z relację ρ następująco: aρb ⇐⇒ a ≡ b (mod m) (7.12) 7.27 Twierdzenie. Relacja zdefiniowana w (7.12) jest relacją równoważności. Klasy abstrakcji tej relacji tworzą zbiór reszt modulo m. Zbiór ilorazowy relacji (7.12) oznaczamy Z/mZ lub Zm . Zatem Z5 składa się z następujących zbiorów: [0] = {. . . , −10, −5, 0, 5, 10, 15, . . . } , [1] = {. . . , −9, −4, 1, 6, 11, 16, . . . } , [2] = {. . . , −8, −3, 2, 7, 12, 17, . . . } , [3] = {. . . , −7, −2, 3, 8, 13, 18, . . . } , [4] = {. . . , −6, −1, 4, 9, 14, 19, . . . } . Zazwyczaj utożsamiamy elementy 0, 1, 2, 3, 4 z klasami abstrakcji, które są przez nie reprezentowane. Piszemy więc Z5 = {0, 1, 2, 3, 4}. 7.9 Własności arytmetyczne kongruencji Okazuje się, że kongruencjami można manipulować bez wyrażania liczb za pomocą reszt i ilorazów częściowych. Przy ustalonym module m, kongruencje można dodawać, odejmować i mnożyć stronami. 7.28 Twierdzenie. Dla dowolnych liczb całkowitych a, b, c, d oraz m 6= 0 jeśli a ≡ b (mod m) oraz c ≡ d (mod m), to również (a) a + c ≡ b + d (mod m), (b) a − c ≡ b − d (mod m), (c) ac ≡ bd (mod m). 17 Ponieważ c ≡ c (mod m), więc punkt (c) powyższego twierdzenia implikuje następujący wniosek. 7.29 Wniosek. Dla dowolnych liczb całkowitych a, b, c oraz m 6= 0, jeżeli a ≡ b (mod m), to ac ≡ bc (mod m). ¤ Potęgowanie o wykładniku naturalnym jest wielokrotnym mnożeniem. Dlatego mamy kolejny 7.30 Wniosek. Dla dowolnych liczb całkowitych a, b, m 6= 0 oraz liczby naturalnej k, jeżeli a ≡ b (mod m), to ak ≡ bk (mod m). ¤ Twierdzenie 7.28 oraz wnioski po nim implikują następujące twierdzenie, które będziemy później często używać. 7.31 Twierdzenie. Przypuśćmy, że dany jest wielomian f (x) o współczynnikach w zbiorze liczb całkowitych. Jeśli a ≡ b (mod m) jest prawdziwa, to zachodzi też kongruencja f (a) ≡ f (b) (mod m). ¤ 7.32 Przykład. Jaka jest ostatnia cyfra liczby 323 ? Ponieważ 32 ≡ 9 (mod 10), 34 ≡ 7 · 3 ≡ 1 (mod 10), 3 ≡ 3 (mod 10), 3 3 ≡ 9 · 3 ≡ 7 (mod 10), 35 ≡ 1 · 3 ≡ 3 (mod 10), więc cyfry w kolejnych potęgach liczby 3 powtarzają się cyklicznie co cztery. Zatem 323 ma ostatnią cyfrę taką samą jak 33 , czyli 7. 7.33 Przykład. Znajdziemy, praktycznie w pamieci, 232 mod 17. Zauważmy, że 24 ≡ −1 (mod 17). Zatem 28 = 24 · 24 ≡ (−1) · (−1) = 1 (mod 17). Podobnie dostajemy 216 ≡ 1 (mod 17) oraz 232 ≡ 1 (mod 17). Zatem 232 mod 17 = 1. 7.10 Dalsze własności kongruencji Jak do tej pory, zauważyliśmy, że kongruencje można dodawać, odejmować i mnożyć stronami. Czy można je dzielić stronami? Prosty przykład daje odpowiedź negatywną. Rozważmy kongruencje 22 ≡ 18 (mod 4) oraz 11 ≡ 3 (mod 4). Niestety, 2 6≡ 9 (mod 4). Co więcej, kongruencji nie wolno, w ogólnej sytuacji, skracać, czyli dzielić obu jej stron przez tę samą liczbę. Np. 6 ≡ 14 (mod 8), ale 3 6≡ 7 (mod 8). Jak się okazuje, kongruencję można skrócić, ale tylko przy pewnych dodatkowych założeniach. 18 7.34 Twierdzenie. Przypuśćmy, że c jest dodatnią liczbą całkowitą oraz ac ≡ bc (mod m) dla pewnych liczb a, b oraz m > 0. Wówczas zachodzi m kongruencja a ≡ b (mod NWD(m, ). c) Wracając do przykładu poprzedzającego powyższe twierdzenie, docelowa kongruencja, to 3 ≡ 7 (mod 4). W szczególności, każdą kongruencję można skracać przez liczbę względnie pierwszą z modułem. Przedstawimy jeszcze kilka zastosowań kongruencji, które upraszczają skomplikowane przeliczenia. 7.35 Przykład. Pokażemy, że 3 | n3 − n dla dowolnej liczby n ∈ N. Zwykle udowadnia się to stosując indukcję matematyczną. Prościej jest jednak zastosować kongruencje. Dokładnie, mamy udowodnić, że n3 ≡ n (mod 3). Każda liczba n przystaje modulo 3 do jednej z liczb 0, 1 lub 2. Wystarczy więc rozważyć 3 przypadki. 03 ≡ 0 (mod 3), 13 ≡ 1 (mod 3), 23 ≡ 8 ≡ 2 (mod 3). Zatem 3 | n3 − n. Zauważmy jeszcze, że n3 − n jest liczbą parzystą, więc 6 | n3 − n. 7.36 Przykład. Okazuje się, że kart nie można potasować stosując konsekwentnie i dokładnie tę samą regułę tasowania. Załóżmy, że talię 52 kart dzielimy na dwie części po 26 (pierwsza część zawiera karty ponumerowane od 1 do 26, a druga – od 27 do 52), a następnie tasujemy na przemian. W rezultacie otrzymujemy karty potasowane w kolejności 27, 1, 28, 2, 29, 3, . . . Kolejność tę można opisać za pomocą funkcji f (i) = 2i, ale tylko dla kart o numerach od 1 do 26. Karta o numerze 27 przechodzi na pozycję pierwszą, więc lepszym wzorem jest f (i) = 2i mod 53. Zatem f (i) ≡ 2i (mod 53). Jeśli karty potasujemy dwa razy otrzymamy ¡ ¢ f f (i) ≡ 2(2i) ≡ 22 i (mod 53). Po przetasowaniu kart k razy, i-ta karta przejdzie na 2k i-tą kartę. Obliczymy 252 mod 53. Mamy 24 28 216 232 248 252 2 ≡ 16 ≡ (−9)2 ≡ (−25)2 ≡ (−11) · (−25) ≡ 10 · 16 ≡ 44 ≡ 81 ≡ 625 ≡ 275 ≡ 160 19 ≡ 16 ≡ −9 ≡ −25 ≡ −11 ≡ 10 ≡1 (mod (mod (mod (mod (mod (mod 53) 53) 53) 53) 53) 53). Zatem po przetasowaniu kart 52 razy, i-ta karta przechodzi na i-tą kartę, czyli otrzymujemy pierwotny układ kart. Często się zdarza, że trzeba łączyć kongruencje o różnych modułach. Jeśli a ≡ b (mod m) oraz a ≡ b (mod n), to nie musi koniecznie zachodzić a ≡ b (mod mn). Na przykład, 2 ≡ 10 (mod 8), 2 ≡ 10 (mod 4), ale 2 6≡ 10 (mod 32). Potrzebne jest tu dodatkowe założenie. 7.37 Twierdzenie. Przypuśćmy, że a≡b (mod m) oraz a ≡ b NWD (m, n) = 1. Wówczas (mod n) ⇔ a ≡ b (mod mn). Powyższe twierdzenie pozwala rozbijać kongruencje o dużych złożonych modułach na kongruencje o niższych modułach pierwszych. Jest to o tyle istotne, że łatwiej jest wydedukować coś na temat podzielności przez liczbę pierwszą niż przez liczbę złożoną. Na przykład, aby sprawdić, czy 1729 przystaje do 1 modulo 12, wystarczy sprawdzić, czy zachodzą kongruencje 1729 ≡ 1 (mod 3) oraz 1729 ≡ 1 (mod 4). Jest to łatwe, ponieważ cechy podzielności przez 3 i 4 są łatwe w zastosowaniu. Ponieważ liczba 1728 dzieli się zarówno przez 3 jak i przez 4, więc wspomniane kongruencje zachodzą. 7.11 Liczby odwrotne modulo m Podobnie jak równania można też rozwiązywać kongruencje. Generalnie, jeżeli dany jest moduł m oraz funkcja f określona w zbiorze liczb całkowitych i o wartościach całkowitych, to pytamy jak znaleźć x, aby spełniona była kongruencja f (x) ≡ 0 (mod m). W tym podrozdziale zajmiemy się kongruencjami liniowymi, czyli takimi, dla których f (x) = ax + b, gdzie a, b ∈ Z. Aby uprościć zapis będziemy dalej pisać kongruencje liniowe w postaci ax ≡ b (mod m) (7.13) Przypomnijmy, że w zbiorze liczb rzeczywistych, aby rozwiązać równanie ax = b, mnożyliśmy obie jego strony przez liczbę odwrotną do a (o ile taka istniała, a nie istniała tylko dla a = 0). Podobnie będziemy postępować w przypadku kongruencji liniowych. Liczbę a0 nazywamy odwrotną do a modulo m, jeżeli a0 a ≡ 1 (mod m). Jeśli taka liczba a0 istnieje, to liczbę a nazywamy odwracalną modulo m. Liczbę odwrotną do a modulo m będziemy oznaczać a−1 mod m. 20 7.38 Przykład. 1. Ponieważ 2 · 6 ≡ 1 (mod 11), więc 6 jest liczbą odwrotną do 2 modulo 11 oraz 2 = 6−1 mod 11. 2. Liczbą odwrotną do 3 modulo 8 jest 3, ponieważ 3 · 3 ≡ 1 (mod 8). 3. Liczba 2 nie jest odwracalna modulo 8, ponieważ jeśli 2a0 ≡ 1 (mod 8), to oznacza to, że 8 | 2a0 − 1, czyli 8 dzieli liczbę nieparzystą, co nie jest prawdą. Ostatni przykład pokazuje, że liczba całkowita a nie musi mieć liczby odwrotnej modulo m. W następnym twierdzeniu pokażemy, kiedy liczby odwrotne modulo m istnieją. 7.39 Twierdzenie. Liczba całkowita a jest odwracalna modulo m wtedy i tylko wtedy, gdy NWD(a, m) = 1. Dowód ⇒. Skoro istnieje taka liczba a0 , że aa0 ≡ 1 (mod m), to istnieje też taka liczba całkowita k, że aa0 − 1 = km, albo aa0 − km = 1. Z wniosku 7.16 wynika, że NWD(a, m) = 1. ⇐. Jeśli NWD(a, m) = 1, to istnieją liczby całkowite x oraz y takie, że ax + my = 1, czyli m | ax − 1. Zatem x = a−1 mod m. Dowód tego twierdzenia mówi, że aby obliczyć liczbę odwrotną do a modulo m należy znaleźć takie liczby x oraz y, żeby zachodziła równość ax+by = 1. Liczby te znajdujemy stosując algorytm Euklidesa. Dla przykładu, znajdźmy 11−1 mod 31. W tym celu wykonujemy następujące obliczenia: 31 = 3 · 11 − 2 11 = 5 · 2 + 1 2 = 3 · 11 − 31 1 = 11 − 5 · 2. Tak więc 1 = 11 − 5 · 2 = 11 − 5 · (3 · 11 − 31) = 5 · 31 − 14 · 11. Zatem liczbą odwrotną do 11 modulo 31 jest −14. Zauważmy, że również 17 jest liczbą odwrotną do 11 modulo 31. Ponieważ zapis a−1 mod m wymaga jednoznaczności, więc przyjmijmy, że 0 ≤ a−1 mod m < m. Zatem, zgodnie z tą umową, 11−1 mod 31 = 17. Jest jeszcze pewne niedomówienie, które wyjaśni następujące twierdzenie. 7.40 Twierdzenie. Jeśli aa0 ≡ 1 (mod m), oraz aa00 ≡ 1 (mod m), to liczby a0 i a00 różnią się o wielokrotność m. 21 Dowód. Przypuśćmy, że a0 − a00 = qm + r dla q ∈ Z oraz 0 ≤ r ≤ m − 1. Mamy aa0 − aa00 = aqm + ar, albo aa0 − aa00 ≡ ar (mod m). Zatem zachodzi 0 ≡ ar (mod m), czyli m | ar. Skoro jednak NWD(a, m) = 1, więc m | r, a to oznacza, że r = 0. Z powyższego twierdzenia wynika, że jeśli liczba odwrotna do a modulo m istnieje, to jest ona jednoznacznie określona w Zm . Wróćmy teraz do kongruencji (7.13). Ma ona rozwiązanie, jeśli liczba a jest odwracalna modulo m. Aby znaleźć to rozwiązanie, należy pomnożyć obie strony kongruencji (7.13) przez jakąkolwiek liczbę odwrotną do a. 7.41 Przykład. Rozwiążemy 3x ≡ 5 (mod 13). Wykorzystując algorytm Euklidesa, otrzymujemy 3 · 9 − 13 · 2 = 1. Zatem 9 jest liczbą odwrotną do 3 modulo 13. Mnożąc obie strony naszej kongruencji przez 9 otrzymujemy x ≡ 9 · 5 ≡ 6 (mod 13). Zatem 6 (i każda liczba, która się różni od 6 o wielokrotność 13) jest rozwiązaniem naszej kongruencji. 7.12 Chińskie twierdzenie o resztach Twierdzenie, które tu przedstawimy zostało odkryte i wykorzystywane w średniowiecznych Chinach. Przyczyną tego odkrycia były trudności z mnożeniem i dodawaniem dużych liczb – łatwiej jest nauczyć się na pamięć kilku kombinacji, niż wykonywać działania arytmetyczne w pamięci. A dokładnie, kiedy dowódca chciał zliczyć swoje wojsko, kazał ustawić się żołnierzom w dwu-szeregu, następnie w trzy-szeregu, potem w pięcio-szeregu itd. Liczba ,,niesparowanych” żołnierzy w każdym z tych ustawień (czyli reszty z dzielenia ogólnej liczby żołnierzy przez 2, 3, 5, . . . ) dawały liczbę wszystkich żołnierzy. Żeby skonkretyzować nasze myślenie, rozważmy następujący przykład. 7.42 Przykład. Po ustawieniu całego wojska w 3-, 5- i 7-szeregu dostaliśmy, odpowiednio 2, 1 oraz 6 niesparowanych żołnierzy. Jaka jest liczebność oddziału, jeżeli wiadomo, że żołnierzy jest mniej niż 100? Formalizując zadanie, niech x będzie liczbą żołnierzy. Zatem reszty z dzielenia x przez 3, 5 oraz 7, to 2, 1 i 6. Stąd x ≡ 2 (mod 3) x ≡ 1 (mod 5) x ≡ 6 (mod 7) 22 (7.14) (7.15) (7.16) Powyższy system trzech kongruencji rozwiążemy korzystając z dowodu następnego twierdzenia. 7.43 Twierdzenie (Chińskie twierdzenie o resztach). Przypuśćmy, że m1 , m2 , . . . , mr są parami względnie pierwsze. Wówczas układ kongruencji x ≡ a1 x ≡ a2 .. . x ≡ ar (mod m1 ) (mod m2 ) (7.17) (mod mr ) ma jednoznaczne rozwiązanie modulo m1 m2 . . . mr . Dowód. Wprowadźmy następujące oznaczenia: M = m1 m2 . . . mr , Mi = xi = Mi−1 mod mi dla 1 ≤ i ≤ r. Rozważmy teraz liczbę M , mi x = a1 M1 x1 + a2 M2 x2 + · · · + ar Mr xr . Ponieważ dla j 6= i zachodzi Mj ≡ 0 (mod xi ), więc x ≡ ai Mi xi (mod mi ) dla każdego i. Ale Mi xi ≡ 1 (mod mi ), więc x ≡ ai (mod mi ) dla 1 ≤ i ≤ r. Pozostaje jeszcze udowodnić jednoznaczność. Niech x1 oraz x2 będą dwoma rozwiązaniami układu (7.17). Zatem x1 ≡ x2 (mod mi ) dla 1 ≤ i ≤ r. Stąd mi | x1 − x2 , a ponieważ m1 , m2 , . . . mr są względnie pierwsze, więc M | x1 − x2 . Zatem dwa rozwiązania (7.17) różnią się o wielokrotność M i układ ten ma jednoznaczne modulo M rozwiązanie. W odróżnieniu od dowodów wielu innych podobnych twierdzeń, dowód chińskiego twierdzenia o resztach daje wzór na rozwiązanie układu kongruencji. 7.44 Przykład. Rozważmy układ kongruencji z przykładu 7.42. Stosując oznaczenia dowodu twierdzenia 7.43, mamy M = 105 oraz i mi ai Mi xi 1 2 3 3 5 7 2 1 6 35 21 15 2 1 1 23 Stąd x ≡ 2 · 35 · 2 + 1 · 21 · 1 + 6 · 15 · 1 ≡ 140 + 21 + 90 ≡ 251 ≡ 41 (mod (mod (mod (mod 105) 105) 105) 105). Założenie o kopierwszości modułów jest dość istotnym ograniczeniem. Na przykład, układu kongruencji x ≡ 3 (mod 8) x ≡ 7 (mod 12) (7.18) nie można rozwiązać stosując twierdzenia 7.43, ponieważ 8 oraz 12 nie są względnie pierwsze. Nie oznacza to jednak, że układ ten nie ma rozwiązania. Rozwiążemy go w następnym przykładzie. 7.45 Przykład. Aby rozwiązać układ kongruencji 7.18 zapiszmy najpierw 12 = 4 · 3 i rozbijmy drugą kongruencję układu na dwie kongruencje x ≡ 7 (mod 4) i x ≡ 7 (mod 3). Mamy zatem układ trzech kongruencji x ≡ 3 (mod 8) x ≡ 3 (mod 4) x ≡ 1 (mod 3). (7.19) Ale rozwiązanie pierwszej kongruencji układu (7.19) spełnia też drugą kongruencję, więc druga kongruencja jest niepotrzebna. Otrzymujemy więc równoważny (7.18) układ kongruencji x≡3 x≡1 (mod 8) (mod 3). Ostatni układ rozwiązujemy stosując chińskie twierdzenie o resztach (7.43), otrzymując x ≡ 19 (mod 24). 7.13 Kongruencje stopnia 2 Rozważmy następujący przykład 24 7.46 Przykład. Chcemy znaleźć wszystkie liczby n, których ostatnie trzy cyfry są takie same jak w n2 . Od razu zauważamy, że takimi liczbami są 0 oraz 1. Po chwili zauważamy też, że 1000, 1001 i wszystkie liczby kończące się na 000 lub 001 mają wymaganą własność. Dochodzimy więc do kongruencji n ≡ n2 (mod 1000), (7.20) której rozwiązanie da nam wszystkie szukane liczby. Jest to kongruencja drugiego stopnia (f (n) = n − n2 ). Jej rozwiązaniami (modulo 1000) są 0, 1, 376, 625. Gdyby w przykładzie 7.46 moduł był mały, to kongruencję (7.20) rozwiązalibyśmy podstawiając za n wszystkie nieujemne liczby całkowite mniejsze od m. Metoda ta nie pracuje, jeśli m jest dużą liczbą. W rozdziale tym pokażemy, że kongruencje o modułach złożonych można zredukować do kongruencji o modułach pierwszych. To pozwoli nam rozwiązać niektóre kongruencje. Nie będziemy tu wprowadzać skomplikowanej teorii pozwalającej nam rozwiązać każdą kongruencję. Pierwiastkiem modulo m wielomianu f (x) o współczynnikach całkowitych nazywamy taką liczbę r, że f (r) ≡ 0 (mod m). Jeśli r jest pierwiastkiem wielomianu f (x) modulo m oraz r ≡ r0 (mod m), to z twierdzenia 7.31 wynika, że f (r) ≡ f (r0 ) (mod m), czyli r0 też jest pierwiastkiem wielomianu f (x) modulo m. Nasze rozważania na temat pierwiastków będziemy ograniczać do Zm i mówiąc ,,rozwiązanie” mamy na myśli rozwiązanie modulo m. Przykłady. 7.47. Wielomian x2 + 2 nie ma pierwiastków modulo 7. Sprawdzamy to podstawiając za x kolejne liczby 0, 1, 2, 3, 4, 5, 6. 7.48. Wielomian x2 − 2 ma w Z7 dokładnie dwa pierwiastki: 3 i 4. Zauważmy, że wielomian f (x) z przykładu 7.46 był stopnia drugiego i miał dokładnie 4 pierwiastki modulo 1000. Jak wiadomo, w ciałach liczbowych, wielomian nie może mieć więcej pierwiastków niż jego stopień. W szczególności, wielomian stopnia 2 nie może mieć trzech pierwiastków. 7.49. Wielomian x2 − 1 ma w Z12 cztery pierwiastki: 1, 5, 7 oraz 11. 25 Rozważymy teraz metodę redukcji modułu złożonego m na moduły będące potęgami liczb pierwszych z rozkładu m. Jeśli m = pα1 1 pα2 2 . . . pαk k , to kongruencja f (x) ≡ 0 (mod m) implikuje k kongruencji f (x) ≡ 0 (mod pαi i ), gdzie 1 ≤ i ≤ k. Odwrotna implikacja także zachodzi, ponieważ potęgi różnych liczb pierwszych są kopierwsze. 7.50 Przykład. Rozważmy kongruencję x2 ≡ 1 (mod 105). Ponieważ 105 = 3 · 5 · 7, więc nasza kongruencja jest równoważna układowi trzech kongruencji x2 ≡ 1 (mod 3) x2 ≡ 1 (mod 5) x2 ≡ 1 (mod 7). Każdą z powyższych kongruencji rozwiązujemy podstawiając kolejne liczby i otrzymujemy w trzech przypadkach po dwa rozwiązania: 1 i 2 modulo 3, 1 i 4 modulo 5 oraz 1 i 6 modulo 7. Dowolna kombinacja tych rozwiązań daje rozwiązanie modulo 105. Oznaczmy przez r pierwiastek wielomianu x2 − 1 modulo 105. r jest jednym z rozwiązań ośmiu poniższych układów kongruencji. r ≡ 1 (mod 3) r ≡ 1 (mod 5) r ≡ 1 (mod 7), r ≡ 2 (mod 3) r ≡ 1 (mod 5) r ≡ 1 (mod 7), r ≡ 2 (mod 3) r ≡ 4 (mod 5) r ≡ 1 (mod 7), r ≡ 2 (mod 3) r ≡ 1 (mod 5) r ≡ 6 (mod 7), r ≡ 1 (mod 3) r ≡ 4 (mod 5) r ≡ 1 (mod 7), r ≡ 1 (mod 3) r ≡ 1 (mod 5) r ≡ 6 (mod 7), r ≡ 1 (mod 3) r ≡ 4 (mod 5) r ≡ 6 (mod 7), r ≡ 2 (mod 3) r ≡ 4 (mod 5) r ≡ 6 (mod 7). Rozwiązaniami (modulo 105) tych układów kongruencji są, kolejno, 1, 71, 64, 29, 76, 41, 34 i 104. Wracając do przykładu 7.46, kongruencja 7.20 jest równoważna układowi kongruencji n ≡ n2 (mod 23 ) (7.21) n ≡ n2 (mod 53 ). 26 Pierwszą kongruencję z (7.21) możemy jeszcze rozwiązać podstawiając kolejne liczby od 0 do 7. Przy drugiej kongruencji metoda ta zawodzi ze względu na zbyt wiele liczb. Zastosujemy więc inną metodę. Ponieważ kongruencję n ≡ n2 (mod 5) spełniają dwie liczby (modulo 5) 0 oraz 1, więc kongruencję n ≡ n2 (mod 52 ) (7.22) spełniają liczby postaci 0 + 5k1 oraz 1 + 5l1 . Podstawiamy te liczby do (7.22) otrzymując 5k1 ≡ 0 (mod 52 ) oraz 5l1 ≡ 10l1 (mod 52 ). Stąd kongruencje k1 ≡ 0 (mod 5) i l1 ≡ 2l1 (mod 5), które dają k1 = 0 oraz l1 = 0. Mamy zatem 2 rozwiązania modulo 25: 0 oraz 1. Rozwiązaniami modulo 125 drugiej kongruencji z (7.22) są liczby postaci 52 k2 oraz 1 + 52 l2 . Wykonując podobne obliczenia jak powyżej dostajemy dwa rozwiązania: 0 i 1. Aby rozwiązać zadanie postawione w przykładzie 7.46, wystarczy rozwiązać cztery układy kongruencji r ≡ e1 r ≡ e2 (mod 23 ) (mod 53 ), gdzie za e1 oraz e2 podstawiamy 0 lub 1. Cztery szukane rozwiązania to 0, 1, 376 i 625. 7.51 Przykład. Rozwiążemy kongruencję x2 + 4x + 2 ≡ 0 (mod 49). (7.23) Mamy tutaj f (x) = x2 +4x+2 oraz 49 = 72 . Zaczynamy więc od kongruencji x2 + 4x + 2 ≡ 0 (mod 7), dla której znajdujemy rozwiązanie podstawiając po kolei wszystkie liczby od 0 do 6. Znajdujemy dwa pierwiastki x1 = 1 oraz x2 = 2. Zatem pierwiastki kongruencji (7.23), to 1 + 7k oraz 2 + 7l. Podstawiajac je do (7.23) otrzymujemy 42k ≡ −7 (mod 49) oraz 7l ≡ −14 (mod 49), co redukuje się do 6k ≡ −1 (mod 7) oraz l ≡ −2 (mod 7) i ostatecznie daje rozwiązania x1 = 8 oraz x2 = 37. 27 7.52 Przykład. Rozwiążemy kongruencję x2 + x + 7 ≡ 0 (mod 9). (7.24) Jedynym pierwiastkiem kongruencji x2 + x + 7 ≡ 0 (mod 3) jest x0 = 1. Ale zapisując x = 1 + 3k i podstawiając do (7.24), otrzymujemy 0 ≡ 0 (mod 9), więc x1 = 1 + 3 · 0 = 1, x2 = 1 + 3 · 1 = 4 oraz x3 = 1 + 3 · 2 = 7 są pierwiastkami (7.24). 7.53 Przykład. Poszukamy pierwiastków kwadratowych z 1 modulo 16. Rozważymy więc wielomian f (x) = x2 − 1. Modulo 8, ma on 4 pierwiastki: x01 = 1, x02 = 3, x03 = 5 i x04 = 7. Dalej szukamy ki , gdzie xi = x0i + 8ki oraz f (xi ) ≡ 0 (mod 16) dla i ∈ {1, 2, 3, 4}. Otrzymujemy sprzeczność dla k2 i k3 oraz 0 ≡ 0 (mod 16) dla k1 i k2 . Zatem pierwiastkami kwadratowymi z jedynki modulo 16 są 1, 9, 7 i 15. Zakończymy ten podrozdział jeszcze jednym przykładem, który ma duże znaczenie w kryptografii. 7.54 Przykład. Przypuśćmy, że p i q są różnymi liczbami pierwszymi oraz n = pq. Wówczas kongruencja x2 ≡ 1 (mod n) ma dokładnie 4 rozwiązania, ponieważ każda z kongruencji x2 ≡ 1 (mod p) oraz x2 ≡ 1 (mod q) ma dokładnie dwa rozwiązania. Rozwiązania ±1 nazywamy trywialnymi. Jeśli x jest nietrywialnym rozwiązaniem, to NWD(x − 1, n) oraz NWD(x + 1, n) są liczbami p i q. Zatem jeśli znamy nietrywialne rozwiązanie kongruencji x2 ≡ 1 (mod n), to znamy też rozkład liczby n. Odwrotnie, jeśli znamy rozkład liczby n, czyli p oraz q, to rozwiązania kongruencji x2 ≡ 1 (mod n) możemy otrzymać korzystając z chińskiego twierdzenia o resztach dla czterech układów kongruencji: x ≡ e1 (mod p), x ≡ e2 (mod q) dla e1 , e2 ∈ {0, 1}. 7.14 Zastosowanie chińskiego twierdzenia o resztach do gry w orła i reszkę Wykorzystamy tu stosunkowo małe liczby, żeby cały czas kontrolować przebieg gry. Niech więc n = 341 = 11 · 31. Powróćmy do Alicji i Stefana, którzy się już pojawili na tym wykładzie. Liczby 11 oraz 31 są znane Alicji, a Stefan zna tylko ich iloczyn, tj. 341. 28 1. Stefan wybiera losowo liczbę 0 < x ≤ 340 i oblicza wartość x2 . Załóżmy, że x = 134, więc x2 = 224. Alicja otrzymuje tylko liczbę 224. 2. Alicja po otrzymaniu y = 224 oraz wiedząc, że 341 = 11 · 31, oblicza cztery pierwiastki równania x2 = 224 modulo 341. Robi to w następujący sposób. Ponieważ x2 ≡ 224 (mod 341), więc x2 ≡ 224 ≡ 4 (mod 11) x2 ≡ 224 ≡ 7 (mod 31) stąd mamy jedną z czterech możliwości x ≡ ± 2 (mod 11) x ≡ ± 10 (mod 31) Stosując oznaczenia z dowodu chińskiego twierdzenia o resztach rozwiązujemy powyższy układ następująco: a1 = 2, m1 = 11, a2 = 10, m2 = 31, M = 341. Obliczamy teraz M1 = 31 oraz M2 = 11. Stosując algorytm Euklidesa lub w inny sposób obliczamy N1 = 6 i N2 = 17. Teraz już bez trudu otrzymujemy x = 2 · 31 · 6 + 10 · 11 · 17 = 2242, co modulo 341 daje 196. Alicja może tę liczbę potraktować jako swoją szczęśliwą i wysłać ją Stefanowi, lub też obliczyć trzy pozostałe liczby rozwiązując następujące układy kongruencji x ≡ −2 (mod 11); x ≡ 2 (mod 11); x ≡ −2 (mod 11); x ≡ 10 (mod 31); x ≡ −10 (mod 31); x ≡ −10 (mod 31). Wówczas do dyspozycji będzie miała liczby 196 oraz 134 (także −196 i −134, ale to się nie liczy) i będzie w prawdziwej rozterce decydując, czy ma wysłać x2 = 196, czy też x1 = 134. 3. Jeśli wysłała x1 = 134 Stefan ma pecha, ponieważ nie zna on liczby 196, której Alicja natychmiast zażąda. 4. Jeżeli jednak Alicja wysłała x2 = 196, wygrywa Stefan i na dowód wygranej przesyła Alicji liczbę 134. Zauważmy, że możemy tu zastosować każdą liczbę n, która jest iloczynem dwóch liczb pierwszych p i q, przy czym jeśli gramy faktycznie o samochód 29 to liczby te muszą być na tyle duże i tak dobrane, żeby nie można było zbyt szybko znaleźć rozkładu liczby n. Liczby p = 11 oraz q = 31 z powyższego przykładu mogą co najwyżej służyć do gry o rozbite lusterko boczne. Zauważmy też, że w punkcie 4, Stefan może udowodnić swoją wygraną znajdując bez problemu rozkład liczby n, ponieważ NWD(x1 − x2 , n) jest większy od 1, czyli stanowi nietrywialny dzielnik liczby n. 30