Teoria liczb - Wkuwanko.pl
Transkrypt
Teoria liczb - Wkuwanko.pl
Matematyka Dyskretna Andrzej Szepietowski 17 marca 2003 roku Rozdział 1 Teoria liczb 1.1 Dzielenie całkowitoliczbowe Zacznijmy od przypomnienia szkolnego algorytmu dzielenia liczb naturalnych. Podzielmy 1743 przez 12. 1 1 1 7 2 5 4 4 4 4 8 6 6 5 3 : 1 2 3 0 3 W wyniku dzielenia otrzymaliśmy iloraz 145 i reszt˛e 3. Liczby te spełniaja˛ równanie 1743 = 145 · 12 + 3 i reszta jest mniejsza od dzielnika. Podobnie możemy postapić ˛ dla dowolnych liczb naturalnych a i b pod warunkiem, że b 6= 0. Twierdzenie 1.1 Dla dowolnych liczb naturalnych a oraz b > 0 istnieje dokładnie jedna para liczb naturalnych q i r spełniajacych ˛ warunki: • a = bq + r • 0≤r<b q nazywa si˛e ilorazem całkowitoliczbowym a przez b, a r nazywa si˛e reszta̧ z dzielenia Zauważmy, że iloraz q jest zaokra̧gleniem w dół normalnego ilorazu q = ba/bc. Iloraz całkowitoliczbowy liczb a i b bȩdziemy oznaczać przez a÷b lub 3 a div b. 4 Rozdział 1. Teoria liczb a reszt˛e przez a mod b. Przykład 1.2 22 ÷ 4 = 5 oraz 22 mod 4 = 2, ponieważ 22 = 5 · 4 + 2 oraz 0 ≤ 2 < 4. W przypadku, gdy a i b sa˛ liczbami całkowitymi iloraz i różnice można róznie definiowa ć. Na przykład w jȩzyku Pascal iloraz dwóch liczb typu całkowitego oznacza siȩ przez a div b i jest to ba/bc — zaokra̧glenie ilorazu a/b w dół, gdy a/b jest dodatnie i da/be, — zaokra̧glenie ilorazu a/b w górȩ, gdy a/b jest ujemne. Reszta, która̧ oznacza siȩ przez a mod b, jest określona wzorem: a mod b = a-(a div b)*b. Mamy wiȩc, na przykład: 22 div 4 = 5; (-22)div 4 = -5; 22 div(-4)= -5; (-22)div(-4)= 5; 22 mod 4 = 2; (-22)mod 4 = -2; 22 mod(-4)= 2; (-22)mod(-4)= -2. 1.2 Podzielność liczb Mówimy, że liczba całkowita a 6= 0 dzieli liczbȩ całkowita̧ b, jeżeli istnieje liczba całkowita z, taka że: b = az. Bȩdziemy to oznaczać przez a|b. Zauważmy, że zachodzi wtedy: b mod a = 0. Liczbȩ a nazywamy dzielnikiem liczby b. Przykład 1.3 3|6, 3| − 6 oraz 3|0. Lemat 1.4 Jeżeli a|b oraz a|c , to a|(b + c) oraz a|(b − c) Dowód. Jeżeli a|b i a|c, to istnieja̧ dwie liczby całkowite k i m, takie że: b = ak oraz c = am. Mamy wiȩc: b + c = ak + am = a(k + m) oraz b − c = ak − am = a(k − m) czyli a dzieli b + c oraz b − c. 2 1.3. Relacja kongruencji 5 1.3 Relacja kongruencji Niech m bȩdzie dowolna̧ liczba̧ naturalna̧ m 6= 0. Powiemy, że dwie liczby całkowite a i b sa̧ równoważne (lub przystaja̧) modulo m, jeżeli m|(a − b). Bȩdziemy wtedy pisać: a = b (mod m). Przykład 1.5 1 = 4 (mod 3), (mod 3). 3 = 0 (mod 3), −1 = 2 (mod 3), −1 = −7 Jeżeli a i b sa˛ dodatnie, to a = b (mod m) wtedy i tylko wtedy, gdy a i b maja˛ takie same reszty z dzielenia przez m. Lemat 1.6 Relacja przystawania modulo jest relacja̧ równoważności, czyli spełnia nastȩpuja̧ce trzy warunki: • zwrotno´ sc´, dla każdego a zachodzi • symetriȩ, dla każdego a i b, jeżeli a = a (mod m), a = b (mod m), • przechodnio´ sc´, dla każdego a, b i c, jeżeli a = b (mod m) i b = c (mod m), to to b = a (mod m), a = c (mod m). Dowód. Udowodnimy tylko przechodniość relacji. Jeżeli m|(a − b) oraz m|(b − c), to m|((a − b) + (b − c)), czyli m|(a − c). 2 Ponadto relacja modulo jest zgodna z dodawaniem, odejmowaniem i mnożeniem. Twierdzenie 1.7 Jeżeli a = b (mod m) a + c = b + d (mod m), oraz c = d (mod m), a − c = b − d (mod m), to: ac = bd (mod m). Dowód. Z założenia mamy: m|(a − b) oraz m|(c − d), z tego zaś łatwo wynika, że m dzieli: (a + c) − (b + d), (a − c) − (b − d) oraz ac − bd = a(c − d) + d(a − b), czyli zachodzi teza twierdzenia. 2 Przykład 1.8 Twierdzenie 1.7 może być użyte do obliczania reszty z dzielenia Jeżeli chcemy policzyć na przykład 1999 mod 3, 6 Rozdział 1. Teoria liczb to pytamy, która z trzech liczb {0, 1, 2} przystaje do 1999 modulo 3. Zróbmy najpierw kilka prostych obserwacji. Po pierwsze: 10 = 1 (mod 3), bo 3|(10 − 1). Z twierdzenia 1.7 wynika, że każda potȩga liczby dziesiȩć przystaje do 1 modulo 3, czyli: 10k = 1 (mod 3) dla każdego k. Mamy teraz: 1999 = 1000 + 9 · 100 + 9 · 10 + 9 = 1 + 9 + 9 + 9 = 1 (mod 3). Podobnie, dla dowolnej liczby x, jeżeli zapiszemy x w postaci dziesiȩtnej: X x= di · 10i , to x= X di (mod 3), czyli x ma takie same reszty modulo 3 co suma cyfr w zapisie dziesiȩtnym. Przykład 1.9 Aby przekonać si˛e, że 2002 · 1999 6= 4001999 wystarczy zauważyć, że liczba 2002 jest parzysta, wi˛ec także wynik mnożenia powinien byż parzysty. Mówiac ˛ inaczej 2002 = 0 (mod 2) oraz 1999 = 1 (mod 2), wi˛ec na podstawie twierdzenia 1.7 mamy 2002 · 1999 = 0 (mod 2), a liczba 4001999 przystaje do jedynki modulo 2. Podobnie możemy si˛e przekonać, że 2002 · 1999 6= 4001996 wystarczy zauważyć, że w iloczynie 2002 · 1999 ostatnia˛ cyfra˛ powinno być 8 a nie 6. Inaczej 2002 = 2 (mod 10) oraz 1999 = 9 (mod 10), wi˛ec na podstawie twierdzenia 1.7 mamy 2002 · 1999 = 8 (mod 10), a liczba 4001996 przystaje do 6 modulo 10. 1.4 Klasy abstrakcji Dla relacji przystawania modulo m definiujemy klasy abstrakcji. Dla dowolnej liczby całkowitej x, klasȩ abstrakcji elementu x definiujemy w nastȩpuja̧cy sposób: [x] = {y | y = x (mod m)}. Innymi słowy, klasa abstrakcji liczby x to zbiór wszystkich liczb z nia̧ równoważnych. Przykład 1.10 Dla m = 3 mamy trzy klasy abstrakcji 1.5. Pierścień Zm 7 [0] = {3k | k ∈ Z} = {. . . , −9, −6, −3, 0, 3, 6, 9, . . .} [1] = {3k + 1 | k ∈ Z} = {. . . , −8, −5, −2, 1, 4, 7, 10, . . .} [2] = {3k + 2 | k ∈ Z} = {. . . , −7, −4, −1, 2, 5, 8, 11, . . .} Zauważmy, że klasy abstrakcji elementów równoważnych pokrywaja̧ siȩ. Lemat 1.11 Jeżeli x=y (mod m), to [x] = [y]. Dowód. Jeżeli z ∈ [x], to z = x (mod m) i z przechodniości relacji z = y (mod m), czyli: z ∈ [y], a wiȩc pokazaliśmy, że: [x] ⊂ [y]. Identycznie pokazujemy zawieranie odwrotne [y] ⊂ [x]. 2 Nastȩpna ważna własność klas abstrakcji to ich rozła̧czność. Lemat 1.12 Jeżeli [x] ∩ [y] 6= ∅, to [x] = [y], inaczej, dwie klasy abstrakcji [x] i [y] albo sa̧ identyczne, albo sa̧ rozła̧czne. Dowód. Przypuśćmy, że klasy [x] i [y] maja̧ wspólny element z. Wtedy: z = x (mod m) Z przechodniości mamy wtedy x = y oraz z=y (mod m). (mod m), a z lematu 1.11 [x] = [y]. 2 1.5 Pierścień Zm Klasy abstrakcji relacji modulo m wygla̧daja̧ nastȩpuja̧co: [0], [1], . . . , [m − 1]. Dla dowolnego k z przedziału 0 ≤ k ≤ m − 1, klasa [k] jest postaci: [k] = {jm + k | j ∈ Z} (Z oznacza zbiór liczb całkowitych). Zbiór klas abstrakcji modulo m oznacza siȩ przez Zm . Ponieważ relacja modulo jest zgodna z działaniami dodawania i mnożenia, możemy zdefiniować dodawanie i mnożenie na klasach abstrakcji. Mówia̧c w skrócie, aby wykonać działanie na dwóch klasach abstrakcji, wybieramy dowolnych przedstawicieli tych 8 Rozdział 1. Teoria liczb klas i wykonujemy działania na tych przedstawicielach. Dokładniej, dodawanie klas abstrakcji definiujemy nastȩpuja̧co: [x] + [y] = [x + y]. Podobnie definiujemy odejmowanie i mnożenie: [x] − [y] = [x − y], [x] · [y] = [x · y]. Poniższy lemat pokazuje, że działania te sa̧ dobrze zdefiniowane; że wynik działania na dwóch klasach nie zależy od wyboru reprezentantów. Lemat 1.13 Jeżeli [x] = [y] [x + u] = [y + w], oraz [u] = [w], [xu] = [yw] to: [x − u] = [y − w]. oraz Dowód. Z założenia mamy: x=y (mod m) oraz u=w (mod m). a z twierdzenia 1.7: [x + u] = [y + w], [x − u] = [y − w] oraz [xu] = [yw]. 2 Przykład 1.14 Niech m = 3. Dla dowolnych dwóch liczb x ∈ [0] i y ∈ [1] ich suma x + y należy do [0 + 1] = [1] a iloczyn do [0 · 1] = [0]. Lemat 1.15 Działania na klasach abstrakcji [0], [1], . . . , [n − 1] spełniaja̧ nastȩpuja̧ce warunki: • dodawanie oraz mnożenie sa̧ przemienne i ła̧czne, • klasa [0] jest elementem neutralnym dodawania, to znaczy dla każdego a mamy [a] + [0] = [a], • dla każdej klasy [a] istnieje klasa do niej przeciwna [−a], taka że [a] + [−a] = [0], • klasa [1] jest elementem neutralnym mnożenia, to znaczy dla dowolnego [x] mamy [x] · [1] = [x], • mnożenie jest rozdzielne wzglȩdem dodawania, czyli dla każdych trzech klas [x], [y], [z] mamy [x]([y] + [z]) = [x][y] + [x][z]. Zbiór z dwoma działaniami spełniaja̧cymi powyższe warunki nazywa siȩ pierścieniem przemiennym z jedynka̧. Dowód: Udowodnimy tylko rozdzielność: [x]([y] + [z]) = [x][y + z] = [x(y + z)] = [xy + xz] = [xy] + [xz] = [x][y] + [x][z]. Skorzystaliśmy w tym dowodzie z rozdzielności mnożenia wzglȩdem dodawania dla liczb całkowitych. 2 1.5. Pierścień Zm 9 1.5.1 Pier´ scien´Z5 Rozważmy zbiór reszt modulo 5. Składa siȩ on z piȩciu klas: [0], [1], [2], [3], [4], dla prostoty bȩdziemy dalej opuszczać nawiasy. Mamy wiȩc zbiór: Z5 = {0, 1, 2, 3, 4} z dodawaniem i mnożeniem określonym nastȩpuja̧cymi tabelami: + 0 1 2 3 4 0 0 1 2 3 4 1 1 2 3 4 0 2 2 3 4 0 1 3 3 4 0 1 2 4 4 0 1 2 3 · 0 1 2 3 4 0 0 0 0 0 0 1 0 1 2 3 4 2 0 2 4 1 3 3 0 3 1 4 2 4 0 4 3 2 1 Zauważmy, że każdy element oprócz zera ma w Z5 element odwrotny wzglȩdem mnożenia, czyli dla każdego x ∈ Z5 − {0} istnieje x−1 , taki że xx−1 = 1: 1−1 = 1, 2−1 = 3, 3−1 = 2, 4−1 = 4. Dlatego Z5 jest ciałem, czyli pierścieniem przemiennym z jedynka̧ i z odwrotnościa̧ wzglȩdem mnożenia. 1.5.2 Pier´ scien´Z4 Rozważmy teraz pierścień reszt modulo 4: Z4 = {0, 1, 2, 3}, gdzie dodawanie i mnożenie jest określone nastȩpuja̧cymi tabelami: + 0 1 2 3 0 0 1 2 3 1 1 2 3 0 2 2 3 0 1 3 3 0 1 2 · 0 x1 2 3 0 0 0 0 0 1 0 1 2 3 2 0 2 0 2 3 0 3 2 1 Z4 nie jest ciałem, ponieważ nie ma w nim elementu odwrotnego do 2. Ponadto w Z 4 mamy: 2 · 2 = 0, czyli zero można przedstawić jako iloczyn dwóch liczb różnych od zera. Łatwo zauważyć, że jeżeli liczba m jest złożona, m = pq dla 1 < p, q < m, to w pierścieniu Zm mamy pq = 0 i ani p, ani q nie maja̧ elementów odwrotnych. Przypuśćmy bowiem, że istnieje p−1 . Mamy wtedy: 0 = p−1 0 = p−1 (pq) = (p−1 p)q = 1q = q, 10 Rozdział 1. Teoria liczb czyli q = 0, sprzeczność. Tak wiȩc Zm nie jest ciałem, jeżeli m jest liczba̧ złożona̧. W dalszej czȩści tego rozdziału zobaczymy, że jeżeli m jest liczba̧ pierwsza̧, to Z m jest ciałem. 1.6 Najwiȩkszy wspólny dzielnik Dla dwóch liczb całkowitych a i b, ich najwiȩkszy wspólny dzielnik to po prostu najwiȩksza liczba całkowita n, która dzieli a i b. Najwiȩkszy wspólny dzielnik liczb a i b bȩdziemy oznaczać przez N W D(a, b). Na przykład: N W D(4, 6) = 2, N W D(4, 0) = 4. Najwiȩkszy wspólny dzielnik dwóch liczb dodatnich można obliczyć za pomoca̧ algorytmu Euklidesa, którego najprostsza wersja wyglada ˛ nast˛epujaco: ˛ Aby obliczyć najwiȩkszy wspólny dzielnik dwóch dodatnich liczb naturalnych a, b, powtarzamy aż do skutku: • jeżeli a = b, to koniec, N W D(a, b) = a, • jeżeli a > b, to a := a − b, • jeżeli a < b, to b := b − a. Powyższy algorytm odejmuje od wiȩkszej liczby mniejsza̧ tak długo, aż liczby bȩda̧ równe. Wtedy wynikiem działania algorytmu jest wspólna wartość tych liczb. W poniższej tabeli pokazano kolejne kroki działania algorytmu Euklidesa na parze liczb 36 i 15: p 36 21 6 6 6 3 q 15 15 15 9 3 3 Tak wiȩc 3 jest najwiȩkszym wspólnym dzielnikiem liczb 15 i 36. Poprawność powyższego algorytmu wynika z prostego faktu, że para a, b ma taki sam zbiór wspólnych dzielników jak para a − b, b. Rzeczywiście, jeżeli liczba r jest wspólnym dzielnikiem pary a, b, to r dzieli także a − b, czyli r jest wspólnym dzielnikiem pary (a − b), b. Na odwrót, jeżeli liczba r jest wspólnym dzielnikiem pary (a − b), b, to r dzieli także (a − b) + b = a, czyli r jest wspólnym dzielnikiem pary a, b. Jeżeli zechcemy według tego uproszczonego algorytmu policzyć najwi˛ekszy wspólny dzielnik dla pary a = 2000001 i b = 2, to algorytm b˛edzie milion razy obliczał a = a − b i po tym wszystkim a b˛edzie równe reszcie z dzielenia a przez b, czyli 1. Dlatego cz˛eściej stosuje si˛e algorytm, w którym zamiast odejmowania oblicza si˛e reszt˛e z dzielenia wi˛ekszej liczby przez mniejsza˛ i robi si˛e to tak długo, aż otrzymamy zero. 1.7. Algorytm Euklidesa 11 1.7 Algorytm Euklidesa Algorytm Euklidesa Aby obliczyć najwiȩkszy wspólny dzielnik dwóch dodatnich liczb naturalnych a, b, powtarzamy aż do skutku: • jeżeli a = 0 lub b = 0 to koniec, N W D(a, b) = a + b, • jeżeli a > b, to a := a mod b, • jeżeli a < b, to b := b mod a. Powyższy algorytm oblicza reszt˛e z dzielenia wiȩkszej liczby przez mniejsza̧ tak długo, aż otrzyma zero. Wtedy wynikiem działania algorytmu jest ta druga liczba (jeżeli a = 0, to a + b = b, a jeżeli b = 0, to a + b = a). W poniższej tabeli pokazano kolejne kroki działania algorytmu Euklidesa na parze liczb 36 i 15: p 36 6 6 0 q 15 15 3 3 Tak wiȩc 3 jest najwiȩkszym wspólnym dzielnikiem liczb 15 i 36. W uproszczonej wersji jȩzyka Pascal algorytm Euklidesa można zapisać w nastȩpuja̧cy sposób: p:=a;q:=b; while p*q<>0 do if p>q then p:=p mod q else q:=q mod p; NWD(a,b):=p+q Poprawność algorytmu Euklidesa wynika z poniższego lematu. Lemat 1.16 Niech p i q bȩda̧ dwoma liczbami naturalnymi i niech 0 < q < p. Wtedy para p, q ma taki sam zbiór wspólnych dzielników jak para p mod q, q. Dowód. Z definicji ilorazu i reszty mamy p = (p ÷ q) · q + p mod q Jeżeli liczba r jest wspólnym dzielnikiem pary p, q, to r dzieli także reszt˛e p mod q, czyli r jest wspólnym dzielnikiem pary (p mod q), q. Na odwrót, jeżeli liczba r jest wspólnym dzielnikiem pary (p mod q), q, to r dzieli także p, czyli r jest wspólnym dzielnikiem pary p, q. 2 12 Rozdział 1. Teoria liczb Tak wiȩc po każdej iteracji pȩtli while para p, q ma taki sam zbiór wspólnych dzielników, a wiȩc także taki sam najwiȩkszy wspólny dzielnik. Na ko ńcu, gdy p = 0 lub q = 0, N W D(p, q) = p + q, czyli jest równy tej drugiej liczbie. Należy jeszcze pokazać, że dla każdej pary dodatnich liczb naturalnych a i b algorytm zatrzyma siȩ. Ale to wynika z faktu, że po każdej iteracji pȩtli while liczba max{p, q} jest coraz mniejsza, a ponieważ jest to zawsze liczba naturalna dodatnia, wiȩc nie może zmniejszać siȩ w nieskończoność. Twierdzenie 1.17 Niech a i b bȩda̧ dwoma dodatnimi liczbami naturalnymi i niech d = N W D(a, b). Wtedy istnieja̧ liczby całkowite x i y, takie że: xa + yb = d, lub mówia̧c inaczej, d jest kombinacja̧ całkowitoliczbowa̧ liczb a i b. Dowód. Pokażmy, że wszystkie wartości, jakie przyjmuja̧ zmienne p i q w trakcie wykonywania algorytmu Euklidesa, sa̧ całkowitoliczbowymi kombinacjami liczb a i b. Na pocza̧tku, gdy p = a i q = b, mamy: p = 1a + 0b, q = 0a + 1b. Załóżmy teraz, że po i-tej iteracji pȩtli p > q oraz że zachodzi: p = xp a + yp b, q = xq a + yq b. Wtedy w (i + 1) iteracji p bȩdzie pomniejszone o q · (p ÷ q) i bȩdziemy mieli: p = (xp − xq · (p ÷ q))a + (yp − yq · (p ÷ q))b oraz q = xq a + yq b. Z tego wynika, że także ostateczna wartość d jest całkowitoliczbowa̧ kombinacja̧ liczb a i b. 2 Algorytm Euklidesa można tak zmodyfikować, aby oprócz najwiȩkszego wspólnego dzielnika N W D(a, b), wyliczał także liczby x i y, takie że: xa + yb = N W D(a, b). Oto ten algorytm w jȩzyku Pascal: p:=a;q:=b; xp:=1;yp:=0; xq:=0;yq:=1; while p<>q do 1.7. Algorytm Euklidesa if p>q then begin p:=p-q; xp:=xp-xq*(p yp:=yp-yq*(p end else begin q:=q-p; xq:=xq-xp*(q yq:=yq-yp*(q end; NWD(a,b):=p; x:=xp,y:=yp 13 div q); div q) div p); div p) W poniższej tabeli pokazano kolejne kroki działania rozszerzonego algorytmu Euklidesa na parze liczb 36 i 15: p 36 6 6 0 q 15 15 3 3 xp 1 1 1 5 yp 0 -2 -2 -12 xq 0 0 -2 -2 yq 1 1 5 5 Tak wiȩc liczbȩ 3 można przedstawić jako kombinacjȩ liczb 15 i 36 w nastȩpuja̧cy sposób: 3 = (−2) · 36 + (5) · 15. Zauważmy, że jeżeli jakaś liczba r dzieli liczby a i b, to dzieli także każda̧ ich kombinacjȩ całkowita̧ xa + yb, a wiȩc dzieli także najwiȩkszy wspólny dzielnik N W D(a, b). Udowodniliśmy poniższy lemat. Lemat 1.18 N W D(a, b) jest podzielny przez każdy wspólny dzielnik liczb a i b. Z lematu 1.18 wynika, że najwiȩkszy wspólny dzielnik N W D(a, b) może być równoważnie zdefiniowany jako taki wspólny dzielnik liczb a i b, który jest podzielny przez każdy wspólny dzielnik a i b. Lemat 1.19 Liczba d jest najwiȩkszym wspólnym dzielnikiem liczb a i b wtedy i tylko wtedy gdy d bȩdzie wspólnym dzielnikiem a i b oraz istnieja̧ liczby całkowite x i y, takie że d = xa + yb. 14 Rozdział 1. Teoria liczb Dowód Jeżeli N W D(a, b) = d to d|a, d|b oraz (z twierdzenia 1.17) istnieja̧ liczby całkowite x i y, takie że: d = xa + yb. Na odwrót, jeżeli d dzieli a i b oraz xa + yb = d, to każdy wspólny dzielnik a i b dzieli d, a wiȩc d jest najwiȩkszym wspólnym dzielnikiem a i b. 2 Wniosek 1.20 Jeżeli istnieja̧ liczby całkowite x i y, takie, że xa+yb = 1, to N W D(a, b) = 1. Przykład 1.21 Zastanówmy siȩ, ile wynosi N W D(1998, 2000). Ponieważ: 2000 − 1998 = 2 oraz 2 jest wspólnym dzielnikiem 1998 i 2000, wiȩc N W D(1998, 2000) = 2. Zastanówmy siȩ teraz, ile wynosi N W D(1999, 2001). Ponieważ: 2001 − 1999 = 2, wiȩc N W D(1999, 2001) dzieli 2, a ponieważ 2 nie dzieli ani 1999, ani 2001, wiȩc N W D(1999, 2001) = 1. 1.8 Liczby pierwsze i wzglȩdnie pierwsze Dwie liczby naturalne a i b sa˛ wzglȩdnie pierwsze, jeżeli N W D(a, b) = 1, a liczba naturalna p jest pierwsza, jeżeli p > 1 i jedynymi dzielnikami naturalnymi p sa̧ jedynka i samo p. Oto wszystkie liczby pierwsze mniejsze od 50: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47. Liczba n > 1, która nie jest pierwsza jest złożona. Istnieja˛ wtedy dwie liczby k, m < n, takie, że n = k · m. 1.9 Rozkład liczb na czynniki pierwsze W tym rozdziale zobaczymy, że każda̧ liczbȩ naturalna̧ n > 1 można rozłoży ć na czynniki pierwsze i że taki rozkład jest jednoznaczny z dokładnościa̧ do kolejności czynników. Na przykład: 12 = 22 · 3 i 180 = 22 · 32 · 5. Twierdzenie 1.22 Każda̧ liczbȩ naturalna̧ n > 1 można przedstawić jako iloczyn liczb pierwszych (niekoniecznie różnych): n = q 1 q2 · · · qr . 1.9. Rozkład liczb na czynniki pierwsze 15 Dowód nie wprost. Przypuśćmy, że istnieje liczba naturalna n, której nie można przedstawić jako iloczynu liczb pierwszych i że n jest najmniejsza̧ taka̧ liczba̧. n nie może być liczba̧ pierwsza̧ (bo wtedy n = q1 ), wiȩc n jest liczba̧ złożona̧, czyli jest postaci: n = km dla k, m < n. Ale ponieważ k i m sa̧ mniejsze od n, wiȩc można je rozłożyć na czynniki pierwsze k = p 1 p2 · · · ps oraz m = r 1 r2 · · · rt , ale wtedy, wbrew założeniu, mamy rozkład liczby n na czynniki pierwsze: n = p 1 p 2 · · · p s r1 r2 · · · rt . 2 Aby pokazać, że rozkład jest jednoznaczny (z dokładnościa̧ do kolejności czynników), musimy najpierw udowodnić dwa lematy. Lemat 1.23 Niech a i b bȩda̧ dodatnimi wzglȩdnie pierwszymi liczbami naturalnymi. Wtedy dla dowolnej liczby c, jeżeli a|bc, to a|c. Dowód. Z twierdzenia 1.17, istnieja̧ dwie liczby całkowite x i y, takie że: xa + yb = 1. Pomnóżmy teraz obie strony tego równania przez c: xac + ybc = c, i zauważmy, że a dzieli oba składniki po lewej stronie równania, a wiȩc dzieli prawa̧ stronȩ, czyli c. 2 Lemat 1.24 Jeżeli liczba pierwsza p dzieli iloczyn liczb pierwszych q1 q2 · · · qr (niekoniecznie różnych), to wtedy p jest równe jednej z liczb qi . Dowód przez indukcjȩ ze wzglȩdu na r. Dla r = 1 mamy p|q1 , a ponieważ q1 jest pierwsza i p > 1, wiȩc p = q1 . Załóżmy teraz, że teza zachodzi dla r i przypuśćmy, że p dzieli q1 q2 · · · qr qr+1 . Mamy dwa przypadki: albo p dzieli qr+1 , albo nie. W pierwszym przypadku p = qr+1 . W drugim przypadku mamy N W D(p, qr+1 ) = 1, bo 1 i qr+1 to jedyne dzielniki liczby qr+1 . Z lematu 1.23 wynika teraz, że p dzieli q1 q2 · · · qr , a z założenia indukcyjnego, że p = qi dla jakiegoś 1 ≤ i ≤ r. 2. 16 Rozdział 1. Teoria liczb Udowodnimy teraz, że rozkład liczby na czynniki pierwsze jest jednoznaczny, z dokładnościa̧ do kolejności czynników. Twierdzenie 1.25 Każda̧ liczbȩ naturalna̧ n > 1 można w dokładnie jeden sposób przedstawić w postaci iloczynu: αr 1 α2 n = pα 1 p2 . . . pr , gdzie αi sa̧ dodatnimi liczbami naturalnymi, pi sa̧ liczbami pierwszymi oraz zachodzi p1 < p 2 < . . . < p r . Dowód. Twierdzenie 1.22 orzeka, że liczba ma rozkład na czynniki pierwsze. Trzeba pokazać, że jest to rozkład jednoznaczny. n = 2 jako liczba pierwsza ma jednoznaczny rozkład. Przypuśćmy, że n jest najmniejsza̧ liczba̧ z dwoma różnymi rozkładami: β1 β2 βs αr 2 n = p1α1 pα 2 . . . p r = q 1 q2 . . . qs . (1.1) Wtedy z jednej strony p1 nie może wystȩpować po prawej stronie równania (1.1), bo n/p1 byłoby mniejsza̧ liczba̧ z niejednoznacznym rozkładem. Z drugiej strony p 1 dzieli prawa̧ stronȩ, a wiȩc, z lematu 1.24 wystȩpuje po prawej stronie. Mamy wiȩc sprzeczność. 2 Lemat 1.26 Jeżeli a i b sa̧ wzglȩdnie pierwsze, to ich rozkłady sa̧ rozła̧czne, to znaczy maja̧ rozła̧czny zbiór liczb pierwszych wystȩpuja̧cych w ich rozkładach. 1.10 Elementy odwracalne Definicja 1.27 Element a ∈ Zm jest odwracalny, jeżeli istnieje b ∈ Zm , takie, że a · b = 1 (mod m). b nazywamy elementem odwrotnym do a i oznaczamy przez a −1 . Przykład 1.28 3 jest odwracalna w Z8 bo 3 · 3 = 1 (mod 8). Oprócz 3 w Z8 odwracalne sa˛ także 1, 5 i 7. Lemat 1.29 Liczba a ∈ Zm jest odwracalna wtedy i tylko wtedy, gdy N W D(a, m) = 1. Dowód. Jeżeli N W D(a, m) = 1, to istnieja̧ liczby całkowite x i y, takie że: xa + ym = 1, a wiȩc m dzieli ax − 1, czyli: ax = 1 (mod m). Teraz wystarczy przyja̧ć za a−1 taka̧ liczbȩ z przedziału od 1 do m − 1, która przystaje do x modulo m. Z drugiej strony jeżeli istnieje element a−1 odwrotny do a to a−1 a = 1 (mod m) 1.10. Elementy odwracalne 17 czyli a−1 a − 1 = k · m dla jakiegoś k. Mamy wiȩc a−1 a + (−k)m = 1 czyli N W D(a, m) = 1 (wniosek 1.20). 2 Z powyższego dowodu wynika, że element odwrotny do a można wyliczy ć stosuja̧c algorytm Euklidesa. Na przykład policzmy element odwrotny do 12 w pierścieniu Z17 . Najpierw zastosujemy algorytm Euklidesa, aby obliczyć x i y, takie że: 12x + 17y = 1. Kolejne kroki algorytmu przedstawiono w tabeli: p 17 5 5 1 1 q 12 12 2 2 0 xp 1 1 1 5 5 yp 0 -1 -1 -7 -7 xq 0 0 -2 -2 -12 yq 1 1 3 3 17 Mamy wiȩc: 5 · 17 + (−7)12 = 1, czyli: (−7)12 = 1 (mod 17), ale: −7 = 10 (mod 17), czyli 10 jest elementem odwrotnym do 12 w pierścieniu Z17 . Definicja 1.30 Zbiór elementów odwracalnych w Zn oznaczamy przez Z∗n . Przykład 1.31 Z∗8 = {1, 3, 5, 7}. Lemat 1.32 Jeżeli liczba m jest pierwsza, to każdy element a ∈ Zm , a 6= 0, jest odwracalny, czyli pierścień Zm jest ciałem. Lemat 1.33 Jeżeli a, b ∈ Z∗n to ab ∈ Z∗n oraz a−1 ∈ Z∗n . To oznacza, że Z∗n z mnożeniem jest grupa̧. Dowód: Elementem odwrotnym do iloczynu ab jest b−1 a−1 , a elementem odrotnym do a−1 jest a. 2 18 Rozdział 1. Teoria liczb 1.11 Funkcja liniowa Zastanówmy siȩ jak w pierścieniu Zm działa funkcja liniowa f (x) = a · x (mod m). Rozpatrzmy najpierw przypadek, gdy a i m sa̧ wzglȩdnie pierwsze, czyli gdy N W D(a, m) = 1. Dla m = 8 i a = 3 wartości funkcji przedstawia tabela x 3x 0 0 1 3 2 6 3 1 4 4 5 7 6 2 7 5 W takim przypadku istnieje a−1 element odwrotny do a i funkcja g(x) = a−1 x, która jest odwrotna do f . Rzeczywiście f (g(x)) = aa−1 x = x. Z tego wynika, że f jest wzajemnie jednoznaczna i "na" oraz, że dla każdego b ∈ Z m równanie ax = b ma dokładnie jedno rozwia̧zanie w pierścieniu Zm , jest ono równe x = a−1 b. Funkcja f jest permutacja̧ w Zm i wykorzystuje siȩ ja̧, gdy trzeba wymieszać (przepermutować) elementy Zm . Zauważmy, że f jest także permutacja˛ w Z∗m . Rzeczywiście, jeżeli x ∈ Z∗m , to na podstawie lematu 1.33 f (x) = ax ∈ Z∗m . Mamy wiȩc Lemat 1.34 Jeżeli N W D(a, m) = 1, to funkcja f (x) = ax jest funkcja̧ wzajemnie jednoznaczna̧ w Zm i w Z∗m . Rozpatrzmy teraz przypadek, gdy a i m nie sa̧ wzglȩdnie pierwsze, czyli gdy N W D(a, m) = d > 1. Dla m = 8 i a = 6 wartości funkcji przedstawia tabela x 6x 0 0 1 6 2 4 3 2 4 0 5 6 6 4 7 2 Zauważmy, że jeżeli b jest wartościa̧ funkcji f , czyli gdy ax = b (mod m) to istnieje takie k, że ax − b = km, a ponieważ d dzieli a i m, to d dzieli b, a wiȩc wartościami funkcji f moga̧ być tylko liczby podzielne przez d. Lemat 1.35 Jeżeli N W D(a, m) = d oraz d|b, to równania ax = b (mod m) oraz (a/d)x = (b/d) (mod m/d) sa̧ równoważne, czyli maja̧ ten sam zbiór rozwia̧zań w zbiorze liczb całkowitych. 1.11. Funkcja liniowa 19 Dowód ax = b (mod m) wtedy i tylko wtedy, gdy istnieje k takie że ax − b = km, a to zachodzi wtedy i tylko wtedy, gdy istnieje k takie, że (a/d)x − (b/d) = k(m/d), czyli wtedy i tylko wtedy, gdy (a/d)x = (b/d) (mod m/d). 2 Przypuśćmy teraz, że d dzieli b i rozwia̧żmy równanie ax = b (1.2) w pierścieniu Zm , czyli szukamy takich x ∈ {0, . . . , m − 1}, że ax = b (mod m) (1.3) Z lematu 1.35, to równanie jest równoważne równaniu (a/d)x = (b/d) (mod m/d) (1.4) Ale teraz N W D(a/d, m/d) = 1 i równanie (1.4) ma dokładnie jedno rozwia̧zanie x 0 ∈ {0, . . . , m/d − 1} takie że (a/d)x0 = (b/d) (mod m/d). Ale równania (1.4) i (1.3) sa̧ spełnione także przez liczby x0 , x0 + m/d, x0 + 2m/d, . . . , x0 + (d − 1)m/d. Sa̧ to wszystkie liczby ze zbioru {0, . . . , m − 1} spełniaja̧ce równania (1.4) i (1.3), czyli wszystkie rozwia̧zania równania (1.2) w pierścieniu Zm . Przykład 1.36 Rozwia̧żmy równanie 6x = 9 (mod 15). (1.5) Ponieważ N W D(6, 15) = 3, wiȩc najpierw rozwia̧zujemy równanie 2x = 3 (mod 5) W Z5 mamy 2−1 = 3 wiȩc rozwia̧zaniem jest x0 = 3 · 3 = 4. Tak wiȩc rozwia̧zaniami równaia (1.5) w Z15 sa̧ liczby 4, 9, 14. 20 Rozdział 1. Teoria liczb 1.12 Szyfry liniowe Przypuśćmy, że mamy tekst zapisany za pomoca̧ 26 liter alfabetu łaci ńskiego: a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, i chcemy ten tekst zaszyfrować. W tym celu utożsamiamy zbiór liter z elementami pierścienia Z26 : a = 0, b = 1, c = 2, . . . , z = 25, wybieramy dwie liczby a, b ∈ Z26 , takie że N W D(a, 26) = 1, i szyfrujemy litera po literze według wzoru: C(x) = ax + b (mod 26). Funkcja deszyfruja̧ca jest określona wzorem: D(y) = a−1 y − a−1 b (mod 26). Rzeczywiście: D(C(x)) = a−1 (ax + b) − a−1 b = a−1 ax + a−1 b − a−1 b = x. Z tego wynika, że funkcja szyfruja̧ca C(x) jest wzajemnie jednoznaczna. Przykład 1.37 Wybierzmy a = 23 i b = 20 i zaszyfrujmy słowo matematyka. W tym celu musimy zaszyfrować 6 liter: m, a, t, e, y oraz k. Obliczenia przedstawiono w tabeli: litera m a t e y k x 12 0 19 4 24 10 C(x) 10 20 15 8 0 16 szyfr k u p i a q Słowo matematyka po zaszyfrowaniu wygla̧da tak: kupikupaqu. Jeżeli zaś zastosujemy ten sam szyfr do pocza̧tkowego zdania z wiersza Lokomotywa Juliana Tuwima: stoi na stacji lokomotywa, to otrzymamy: spewhuspuotwneqekepagu. 1.13. Chińskie twierdzenie o resztach 21 Szyfry liniowe sa̧ bardzo starym wynalazkiem. W prostszej wersji z a = 1 stosował je już Juliusz Cezar. Ich wada̧ jest to, że bardzo łatwo daja̧ siȩ łamać. Czasami wystarcza odgadna̧ć, jak zaszyfrowano dwie litery. Można to zrobić analizuja̧c czȩstości wystȩpowania liter w zaszyfrowanym tekście. Przykład 1.38 (kontynuacja przykładu 1.37) W naszym drugim zaszyfrowanym tekście litera e wystȩpuje cztery razy, a litery p i u po trzy razy. Może to nam pomóc w odgadniȩciu, że litera e koduje literȩ o, a litera p koduje literȩ t. Mamy wiȩc dwa równania: 15 = 19a + b (mod 26), 4 = 14a + b (mod 26). Po odjȩciu tych równań stronami mamy: 11 = 5a (mod 26). Korzystaja̧c z algorytmu Euklidesa, możemy teraz wyliczyć element odwrotny do 5 w pierścieniu Z26 . Jest to 21, ponieważ: (−5)5 + 26 = 1 − 5 = 21 (mod 26), oraz tak wiȩc: a = 21 · 11 = 231 = 23 (mod 26). Teraz z drugiego równania możemy wyliczyć b: b = 15 − 19 · 23 = 20 (mod 26). 1.13 Chińskie twierdzenie o resztach W starożytnych Chinach generałowie używali pewnego ciekawego sposobu liczenia swoich żołnierzy. Dla kilku niewielkich liczb parami wzglȩdnie pierwszych, na przykład dla: m1 = 3, m2 = 5, m3 = 7, obliczano i zapamiȩtywano reszty z dzielenia liczby żołnierzy przez te liczby. W celu obliczenia reszt kazano żołnierzom ustawić siȩ trójkami, pia̧tkami i siódemkami. Jeżeli przy nastȩpnym apelu wszystkie trzy reszty były takie same, to znaczyło, że nie brakuje żadnego żołnierza. Zobaczmy, jak ten sposób działa. Weźmy najpierw dwie liczby: m1 = 2 m2 = 3. W poniższej tabeli mamy zestawione reszty modulo 2 i 3 liczb od 0 do 5: 22 Rozdział 1. Teoria liczb a 0 1 2 3 4 5 a (mod 2) 0 1 0 1 0 1 a (mod 3) 0 1 2 0 1 2 Każda z liczb od 0 do 5 = 2 · 3 − 1 ma inny zestaw reszt oraz dla każdej pary reszt (a1 , a2 ), spełniaja̧cych warunek 0 ≤ a1 < 2, 0 ≤ a2 < 3, istnieje liczba a, taka że: a1 a2 = a (mod 2), = a (mod 3). Oczywiście 6 ma takie same reszty jak 0: 0 = 6 (mod 2), 0 = 6 (mod 3), i ogólnie, jeżeli dwie liczby a i b różnia̧ siȩ o wielokrotność liczby 6 = 2 · 3, czyli: a=b+k·6 dla jakiegoś całkowitego k, to a (mod 2) = b (mod 2), a (mod 3) = b (mod 3). Z tego widać, że sposób chińskich generałów, z liczbami 2 i 3, liczy żołnierzy z dokładnościa̧ do piȩciu. Sytuacja jest inna, jeżeli m1 i m2 nie sa̧ wzglȩdnie pierwsze. Jeżeli, na przykład, m1 = 4 i m2 = 6, to wśród liczb od 0 do 23 = 4 · 6 − 1 istnieja̧ takie, które maja̧ takie same reszty, na przykład 1 i 13: 1 (mod 4) = 13 (mod 4) = 1, 1 (mod 6) = 13 (mod 6) = 1. Ponadto nie istnieje taka liczba a, dla której: 1 = a (mod 4), 0 = a (mod 6). Rzeczywiście, z pierwszej równości wynika, że a powinno być nieparzyste, a z drugiej, że parzyste. Jeżeli jednak m1 i m2 sa̧ wzglȩdnie pierwsze, to każda z liczb od 0 do m1 · m2 − 1 ma inny zestaw reszt oraz dla każdej pary reszt (a1 , a2 ), spełniaja̧cych warunek 0 ≤ a1 < m1 , 0 ≤ a2 < m2 , istnieje liczba a, taka że: a1 a2 = a (mod m1 ), = a (mod m2 ), zachodzi bowiem poniższe twierdzenie. 1.13. Chińskie twierdzenie o resztach 23 ´ Twierdzenie 1.39 (chinskie twierdzenie o resztach) Niech m1 , m2 , . . . , m r bȩda̧ dodatnimi liczbami wzglȩdnie pierwszymi, to znaczy dla każdej pary 1 ≤ i < j ≤ r mamy N W D(mi , mj ) = 1, oraz niech a1 , a2 , . . . , ar bȩda̧ dowolnymi resztami. Wtedy istnieje liczba całkowita a, taka że: a1 = a (mod m1 ), a2 = a (mod m2 ), ar ... = a (mod mr ). (1.6) Ponadto jeżeli liczby a i b sa̧ rozwia̧zaniami układu kongruencji (1.6), to ich różnica a − b dzieli siȩ przez iloczyn wszystkich liczb mi , czyli przez: M= r Y mi . i=1 Dowód. Najpierw udowodnimy druga̧ czȩść twierdzenia. Dla każdego 1 ≤ i ≤ r mamy: ai = a (mod mi ) oraz ai = b (mod mi ). Po odjȩciu stronami tych dwóch równań mamy: 0 = a − b (mod mi ), czyli mi |(a − b), wiȩc każda spośród liczb mi dzieli a−b, a skoro liczby m1 . . . mr sa̧ wzglȩdnie pierwsze, wiȩc także ich iloczyn M dzieli a − b. Rzeczywiście, przypuśćmy bowiem, że M ma rozkład αs 1 α2 M = pα 1 p2 · · · ps . αi i Weźmy teraz dowolne pα i . Ponieważ rozkłady liczb m1 , . . . , mr sa̧ rozła̧czne, wiȩc pi wyst˛epuje w rozkładzie jakiegoś mj , czyli dzieli mj oraz a − b, a wiȩc w rozkładzie liczby a − b, liczba pi wystȩpuje z wykładnikiem β ≥ αi . Dlatego M dzieli a − b. Zobaczymy teraz, że układ (1.6) ma rozwia̧zanie. Niech M i = M/mi , czyli: Mi = m1 · · · mi−1 mi+1 . . . mr . Ponieważ Mi i mi maja̧ rozła̧czne rozkłady, wiȩc N W D(mi , Mi ) = 1 oraz istnieje Ni , takie że: Mi Ni = 1 (mod mi ). 24 Rozdział 1. Teoria liczb Weźmy teraz: a= r X a i M i Ni . i=1 Zauważmy, że jeżeli i 6= j, to mi |Mj , oraz: aj Mj Nj = 0 (mod mi ), co daje: a = a i M i Ni = a i (mod mi ) dla każdego i, a wiȩc a jest rozwia̧zaniem układu równań (1.6). 2 Przykład 1.40 Każda z liczb od 0 do 104 = 3 · 5 · 7 − 1 ma inny zestaw reszt wzglȩdem liczb 3, 5 i 7. Tak wiȩc stosuja̧c sposób chińskich generałów z liczbami 3, 5, 7 możemy liczyć żołnierzy z dokładnościa̧ do 104. Ale sposób chińskich generałów pozwala także stwierdzić, o ile zmieniła siȩ liczba żołnierzy. Przypuśćmy bowiem, że na porannym apelu było x żołnierzy i uzyskano reszty: x1 = x (mod 3), x2 = x (mod 5), x3 = x (mod 7), y3 = y (mod 7), a na apelu wieczornym było y żołnierzy i otrzymano reszty: y1 = y (mod 3), y2 = y (mod 5), wtedy różnica x − y spełnia nastȩpuja̧cy układ kongruencji: x1 − y 1 x2 − y 2 x3 − y 3 = x−y = x−y = x−y (mod 3), (mod 5), (mod 7). Jak widać, chińskie twierdzenie o resztach pozwala wnioskować o dużych liczbach za pomoca̧ operacji na małych liczbach. Zobaczmy teraz inne zastosowanie tego twierdzenia. Przykład 1.41 Zastanówmy siȩ, ile wynosi reszta z dzielenia liczby M = 1 997 199 919 przez 15. Łatwo można policzyć, że: M = 4 (mod 5) oraz M = 1 (mod 3), a wiȩc: M = 4 (mod 15), ponieważ 4 jest jedyna̧ liczba̧ z przedziału 0, 1, 2, . . . , 14, która posiada reszty 4 = 1 (mod 3) oraz 4 = 4 (mod 5). 1.14. Pierwiastki kwadratowe 25 1.14 Pierwiastki kwadratowe Definicja 1.42 Liczbȩ y nazywamy pierwiastkiem kwadratowym liczby x w pierścieniu Zm , jeżeli x = y 2 (mod m). Przykład 1.43 W Z5 pierwiastkami 4 sa̧ 2 i 3, a liczba 2 nie posiada pierwiastka. Zauważmy, że jeżeli y 2 = x (mod m) to (m − y)2 = m2 − 2my + y 2 = y 2 = x (mod m), czyli m − y = −y (mod m), też jest pierwiastkiem x. Lemat 1.44 Jeżeli m jest liczba̧ pierwsza̧ i x = y 2 , to y i −y sa̧ jedynymi pierwiastkami z x. Dowód Jeżeli z 2 = y 2 (mod m), to m dzieli z 2 − y 2 = (z − y)(z + y), a ponieważ m jest pierwsze to m dzieli z − y lub z + y. W pierwszym przypadku z = y (mod m), w drugim z = −y (mod m). 2 Przykład 1.45 Tak nie musi być, jeżeli m nie jest liczba̧ pierwsza̧. Na przykład w Z 15 mamy cztery pierwiastki z 1, sa̧ to 1, 4, 11 i 14. Ogólnie rozważmy liczbȩ m która jest iloczynem dwóch różnych liczb pierwszych p > q > 2. Weźmy teraz dowolna̧ liczbȩ y, dla której y mod p = 1 lub y mod p = −1 oraz y mod q = 1 lub y mod q = −1 Wtedy y 2 mod p = 1 oraz y 2 mod q = 1 czyli z chińskiego twierdzenia o resztach wynika, że y 2 = 1 (mod pq). Ponieważ p > q > 2, to 1 6= −1 (mod p) oraz 1 6= −1 (mod q) i mamy wtedy cztery różne pierwiastki z 1, y1 , y2 , y3 , y4 . Sa̧ to liczby dla których y1 mod p = 1, y2 mod p = 1, y3 mod p = −1, y4 mod p = −1 y1 mod q = 1, y2 mod q = −1, y3 mod q = 1, y4 mod q = −1. Zauważmy, że y1 = 1 (mod n) oraz y4 = −1 (mod n). 26 Rozdział 1. Teoria liczb 1.15 Funkcja Eulera Definicja 1.46 Funkcja Eulera, jest to funkcja, która liczbie m przypisuje φ(m) liczbȩ elementów odwracalnych w Zm . Z definicji przyjmujemy φ(1) = 1. Przykład 1.47 φ(8) = 4, bo w Z8 odwracalne sa˛ {1, 3, 5, 7}. Podobnie φ(2) = 1, φ(3) = 2, φ(4) = 2, φ(6) = 2, φ(9) = 6. Lemat 1.48 a) Jeżeli p jest liczba̧ pierwsza̧, to dla dowolnego α ≥ 1, φ(p α ) = α−1 p (p − 1). W szczególności φ(p) = p − 1. b) Jeżeli m i n sa̧ wzglȩdnie pierwsze, to φ(m · n) = φ(m) · φ(n) Dowód: a) Zauważmy że, wśród liczb 0, . . . , pα wzglȩdnie pierwsze z pα nie sa̧ te, które sa̧ podzielne przez p, jest ich pα /p = pα−1 , czyli φ(pα ) = pα − pα−1 = pα−1 (p − 1). b) Najpierw zauważmy, ze dla dowolnej liczby x, 0 ≤ x < mn N W D(x, mn) = 1 wtedy i tylko wtedy gdy N W D(x, m) = 1 oraz N W D(x, n) = 1 a to zachodzi wtedy i tylko wtedy gdy reszty rm = x mod m oraz rn = x mod n spełniaja̧ warunki N W D(rm , m) = 1 oraz N W D(rn , n) = 1 (1.7) Par reszt (rm , rn ) spełniaja̧cych warunek (1.7) jest φ(m)·φ(n), a z chińskiego twierdzenia o resztach każdej liczbie x, 0 ≤ x < mn odpowiada dokładnie jedna para reszt, i na odwrót każdej parze reszt odpowiada jedna liczba. Tak wiȩc liczb wzglȩdnie pierwszych z mn jest φ(m) · φ(n). 2 1.16 Szybkie potȩgowanie Teraz zastanowimy siȩ jak można potȩgować, czyli jak obliczyć ak mod n dla a ∈ Zn oraz k ∈ N. Pierwszy nasuwaja̧cy siȩ algorytm potȩgowania polega na k krotnym mnożeniu przez a: y:=1; for i:=0 to k do y:=y*a mod n 1.16. Szybkie potȩgowanie 27 W kryptografii oblicza siȩ potȩgi z wykładnikami posiadaja̧cymi po kilkaset bitów. Do takich zastosowań powyższy algorytm jest nieprzydatny (wymaga on k mnoże ń). Pokażemy teraz jak można potȩgować dużo szybciej. Zauważmy, że a · a = a2 , a2 · a2 = a 4 i ogólnie i i a2 · a2 = a 2 i+1 . Dlatego, aby obliczyć potȩgȩ o wykładniku, który jest potȩga̧ dwójki k = 2j należy wykonać y:=a; for i:=1 to j do y:=y*y mod n Przykład 1.49 Aby obliczyć 216 w Z13 obliczmy 22 = 2 · 2 = 4 (mod 13), 24 = 4 · 4 = 3 (mod 13), 28 = 3 · 3 = 9 (mod 13), 216 = 9 · 9 = 3 (mod 13). Jeżeli wykładnik jest suma̧ potȩg dwójki k = 2i + 2j , to i j ak = a 2 · a2 . Przykład 1.50 Aby obliczyć 219 mod 13 trzeba wymnożyć 219 = 216 · 22 · 21 = 3 · 4 · 2 = 11 (mod 13). Zauważmy, że każda liczba naturalna k jest suma̧ potȩg dwójki k= j X i=1 di · 2i , gdzie di ∈ {0, 1} to cyfry rozwiniȩcia dwójkowego k. Powyższe uwagi sugeruja̧ nastȩpuja̧cy algorytm obliczania potȩgi a k . Algorytm szybkiego pot˛egowania Dane wejściowe: podstawa a oraz wykładnik k=(dj,...,d0) w postaci binarnej. x:=a; y:=1 if d0=1 then y:=y*a mod n for i:=1 to j do x:=x*x mod n; if di=1 then y:=y*x mod n Zmienna x zawiera kolejne potȩgi a o wykładnikach bȩda̧cych potȩgami 2. Na pocza̧tku 0 i i x = a = a2 . Po i tej iteracji pȩtli for x = a2 . Jeżeli di = 1 to mnożymy y przez x = a2 . Na końcu 1 j y = ad0 ad1·2 · · · adj·2 = ak . 28 Rozdział 1. Teoria liczb Przykład 1.51 Prześledźmy działanie algorytmu podczas obliczania 2 19 (mod 13). 19 w zapisie dwójkowym ma postać (10011)2. Poniższa tabela zawiera wartości zmiennej x i y przed wejściem do p˛etli for i=0) oraz po każdej iteracji. i 0 1 2 3 4 x 2 4 3 9 3 y 2 8 8 8 11 Zauważmy, że wyniki pośrednie, i ostateczny, należa˛ do Zm i algorytm nie potrzebuje zbyt dużej pamiȩci. Algorytmu tego nie można stosować do obliczania ak w liczbach całkowitych, jeżeli k jest duże, to wynik ostateczny oraz pośrednie bȩda˛ zbyt duże, żeby mógł siȩ zmieścić w pamiȩci komputera. 1.17 Małe twierdzenie Fermata Twierdzenie 1.52 (Fermata) Niech a ∈ Z∗m , wtedy aφ(m) = 1 (mod m). Dowód Niech a1 , a2 , . . . , aφ(m) to bȩda̧ wszystkie elementy Z∗m . Jeżeli pomnożymy je przez a aa1 , aa2 , . . . , aaφ(m) to zgodnie z lematem 1.34 otrzymamy te same elementy tylko w innej kolejności. Wymnóżmy teraz elemnty obu cia̧gów Y φ(m) i=1 Y φ(m) ai = aai = a i=1 Po pomnożeniu przez odwrotność Y φ(m) φ(m) ai (mod m). i=1 Qφ(m) i=1 ai otrzymamy tezȩ twierdzenia. 2 Wniosek 1.53 Jeżeli p jest liczba̧ pierwsza̧, to dla każdego a wzglȩdnie pierwszego z p mamy ap−1 = 1 (mod p). 1.18. Szyfry RSA 29 1.18 Szyfry RSA W szyfrach one-pad opisanych w rozdziale o funkcjach boolowskich klucz do szyfrowania jest ten sam co klucz do deszfrowania. W szyfrach liniowych wprawdzie klucze do szyfrowania i deszyfrowania sa̧ różne, ale jaden łatwo można wyliczyć z drugiego. Takie szyfry nazywamy symetrycznymi. Teraz zapoznamy siȩ ze sposobem szyfrowania, w których klucz do szyfrowania może być jawny, nawet ogłaszany publicznie, a klucz do deszyfrowania jest tajny i jest praktycznie niemożliwe wyliczenie klucza tajnego z klucza jawnego. Sposób ten zaproponowali Rivest, Shamir i Adleman. Przypuśćmy, że Alicja chce utworzyć swój klucz. Bierze w tym celu dwie duże liczby pierwsze p i q, każda może zawierać po kilkaset bitów. Tworzy ich iloczyn n = pq. Funkcja Eulera φ(n) = (p − 1)(q − 1). Nastȩpnie Alicja losuje liczbȩ e, która jest wzglȩdnie pierwsza z φ(n). Skoro N W D(e, φ(n)) = 1 to istnieje liczba d, taka, że ed = 1 (mod φ(n)). Teraz para (e, n) jest jawnym kluczem Alicji i może być publicznie ogłoszona. Para (n, d) jest kluczem prywatnym Alicji, nie powinna go ona nikomu zdradzać. Alicja nie powinna też zdradzać rozkładu liczby n na czynniki. Jeżeli ktoś zna p i q, to może wyliczyć φ(n) oraz d. Przypuśćmy, że Bob chce przesłać Alicji jaka̧ś zaszyfrowana̧ wiadomość x. Traktujemy tȩ wiadomość jako liczbȩ x < n. (Jeżeli wiadomość jest cia̧giem znaków, to kodujemy każdy znak jako 8 bitów i cały cia̧g może być traktowany jako liczba w postaci dwójkowej.) Bob szyfruje wiadomość przy pomocy funkcji szyfruja̧cej CA (x) = xe mod n i przesyła ja̧ Alicji. Alicja odszyfrowuje za pomoca̧ funkcji deszyfruja̧cej DA (y) = y d mod n. Pokażemy teraz, że jeżeli N W D(x, n) = 1, to DA (CA (x)) = x. Mamy DA (CA (x)) = xed mod n. Ponieważ ed = 1 (mod φ(n)), wiȩc istnieje k takie, że ed = 1 + kφ(n), czyli DA (CA (x)) = x1+kφ(n) = x · xkφ(n) kφ(n) φ(n) k (mod n) ale jeżeli N W D(x, n) = 1, to x = (x ) = 1 (mod n). Tak wiȩc DA (CA (x)) = x. Do powyższego potrzebne było założenie, że N W D(x, n) = 1. Ale gdy ktoś trafi na wiadomość x, która nie jest wzglȩdnie pierwsza z n, to Alicja ma pecha, ponieważ wtedy można dokonać rozkładu liczby n i złamać jej szyfr. Łatwo też można pokazać, że CA (DA (x)) = x. Niesymetryczne szyfry daja̧ nowe możliwości. Można ich na przykład używać do podpisu. Aby podpisać jaka̧ś wiadomość m, Alicja szyfruje ja̧ swoim szyfrem prywatnym DA (m) i jest to podpis wiadomości m. Alicja wysyła Bobowi parȩ (m, DA (m)). Żeby sprawdzić, że wszystko siȩ zgadza Bob szyfruje podpis publicznym kluczem Alicji i sprawdza czy CA (DA (m)) = m. 30 Rozdział 1. Teoria liczb 1.19 Testy pierwszości W tym rozdziale zajmiemy siȩ zagadnieniem jak sprawdzić, czy liczba n jest pierwsza. Możemy sobie wyobrazić, że n ma kilkaset bitów. Jak widać z poprzedniego rozdziału duże liczby pierwsze moga̧ być przydatne. 1.19.1 Test naiwny Najprostszy sposób to, dzielić n przez kolejne liczby (pierwsze) aż do test jest zupełnie niepraktyczny, jeżeli n ma kilkaset bitów. √ n. Jednak ten 1.19.2 Test Fermata Drugi test jest algorytmem probabilistycznym i opiera siȩ na twierdzeniu Fermata 1.52. Losujemy liczbȩ a < n i najpierw sprawdzamy, czy N W D(a, n) = 1. Jeżeli a i n nie sa̧ wzglȩdnie pierwsze, i N W D(a, n) = d > 1, to d jest dzielnikiem n i n nie jest pierwsza. Jeżeli N W D(a, n) = 1, to obliczamy an−1 mod n. Jeżeli an−1 6= 1 (mod n), to mamy pewność, że n nie jest liczba̧ pierwsza̧. Definicja 1.54 Taka̧ liczbȩ a, dla której N W D(a, n) = 1 oraz an−1 6= 1 (mod n) bȩdziemy nazywać świadkiem Fermata dla n, ponieważ zaświadcza ona, że n jest złożona. Jeżeli an−1 = 1 (mod n), to orzekamy, że liczba n jest pierwsza. W tym przypadku możemy siȩ pomylić. Liczba n może być złożona a mimo to wylosowaliśmy pechowo i an−1 = 1 (mod n). Ale zachodzi nastȩpuja̧cy lemat. Lemat 1.55 Jeżeli istnieje takie a ∈ Z∗n , że an−1 6= 1 (mod n), to przynajmniej połowa elementów Z∗n jest świadkiem Fermata dla n. Dowód. Przypuśćmy, że {b1 , . . . , bk } dla których bin−1 = 1 (mod n). Wtedy po pomnożeniu sa˛ to wszystkie elementy przez a otrzymamy k elementów Z∗n , {ab1 , . . . , abk } różnych miȩdzy soba̧ (lemat 1.34), z których każdy jest świadkiem Fermata. Rzeczywiście (abi )n−1 = an−1 bin−1 = an−1 6= 1 (mod n). A wiȩc świadków złożoności jest co najmniej połowa. 2 Jeżeli n jest pierwsze, to z Twierdzenia Fermata, algorytm zawsze orzeknie dobrze. Z lematu 1.55 wynika, że jeżeli n jest złożona i istnieje świadek Fermata dla n, to takich świadków jest co najmniej połowa, i nasz algorytm pomyli siȩ z prawdopodobie ństwem < 1/2. Prawdopodobieństo, to można zmniejszyć poprzez powtórzenie algorytmu r razy, z różnymi wylosowanymi a. 1.19. Testy pierwszości 31 Istnieja̧ jednak liczby złożone n, które nie maja̧ świadków złożoności. Na przykład n = 561. Kłopot bierze siȩ sta̧d, że 561 = 3 · 11 · 17, a 560 = 561 − 1 dzieli siȩ przez 2 = 3 − 1, 10 = 11 − 1 oraz przez 16 = 17 − 1. Dlatego dla dowolnego a, jeżeli N W D(a, 561) = 1, to a jest wzglȩdnie pierwsze z 3, 11 i 17 oraz mamy a560 = (a2 )280 = 1 (mod 3) a560 = (a10 )56 = 1 (mod 11) a560 = (a16 )35 = 1 (mod 17) i z chińskiego twierdzenia o resztach wynika, że a560 = 1 (mod 561) Takie liczby nazywaja̧ sie liczbami Carmichaela. Pierwsze trzy z nich to 561, 1105 i 1729. Wystȩpuja̧ one bardzo rzadko, jest ich tylko 255 wśród liczb mniejszych od 100 000 000. 1.19.3 Test Millera-Rabina Zakładamy, że n jest nieparzyste (2 jest jedyna̧ parzysta̧ liczba̧ pierwsza̧). Najpierw sprawdzamy, czy n jest potȩga̧ jakiejś liczby naturalnej. Dla α od 2 do log2 n sprawdzamy czy n = k α , dla jakiegoś k. W rozdziale o arytmetyce opisano jak za pomoca̧ binary search stwierdzić, czy liczba jest potȩga̧ innej liczby. Jeżeli n jest potȩga̧, to jest złożona. Ponieważ n jest nieparzyste, to n − 1 możemy przedstawić w postaci n − 1 = m · 2k . dla jakiegoś m nieparzystego. Losujemy a < n. Sprawdzamy, czy N W D(a, n) = 1 (jeżeli N W D(a, n) > 1, to n jest złożona). Nastȩpnie obliczamy am mod n. Jeżeli am mod n = 1, to koniec, stwierdzamy, że n jest pierwsza. Jeżeli am mod n 6= 1, to obliczamy po kolei k 2 am2 mod n, am2 mod n, . . . , am2 mod n. Zauważmy, że w tym cia̧gu każda liczba jest kwadratem poprzedniej. Jeżeli wśród tych liczb nie ma jedynki, to z twierdzenia Fermata wynika, że n jest złożona, bo wtedy k am2 = an−1 6= 1 (mod n). Jeżeli w tym cia̧gu jest jedynka, na przykład i am2 = 1 (mod n) i−1 to patrzymy na poprzedni element x = am2 . Jeżeli x 6= −1, to znależliśmy nietrywialny pierwiastek z 1. Z twierdzenia 1.44 wynika, że jest to możliwe tylko wtedy gdy n nie jest pierwsze. Jeżeli x = −1, to orzekamy, że n jest pierwsze. 32 Rozdział 1. Teoria liczb Łatwo wiȩc widać, że jeżeli n jest pierwsze, to test zawsze odpowie prawidłowo, niezależnie od losowania. Wiadomo też, że jeżeli n jest złożona i nie jest potȩga̧ liczby pierwszej, to z prawdopodobieństwem wiȩkszym niż 1/2 wykryjemy to (dowód tego faktu wybiega poza zakres tej ksia̧żki i pomijamy go). W praktyce stosujemy wszystkie trzy testy na raz. Maja̧c nieparzysta̧ liczbȩ n, najpierw sprawdzamy, czy dzieli siȩ ona przez kilka kolejnych liczb pierwszych p1 , p2 , . . . , pd . Dobór d zależy od tego jak duże liczby sprawdzamy. W ten sposób eliminujemy duża̧ czȩść liczb. Zauważmy, że obliczaja̧c iloczyn tych liczb x= d Y pi i=1 i sprawdzaja̧c, czy N W D(x, n) = 1 możemy za jednym razem sprawdzić, czy n dzieli siȩ przez która̧ś z tych liczb. Po przejściu pierwszego testu stosujemy test drugi, a gdy liczba n go przejdzie stosujemy test trzeci. Ponieważ liczby Carmichaela sa̧ dość rzadkie, wiȩc drugi test wyeliminuje wiȩkszość liczb złożonych. 1.19.4 Losowanie liczb pierwszych Jeżeli chcemy wyklosować liczbȩ pierwsza̧ to losujemy nieparzysta̧ liczbȩ, a mastȩpnie sprawdzamy, czy jest ona pierwsza. Jeżeli nie, to sprawdzamy nastȩpne liczby n + 2, n + 4, .... 1.20 Zadania 1. Podziel (oblicz ilorazy i reszty) liczb 175 oraz 1754 przez 11. 2. Dla każdej z liczb:x = 8, −8, 120 oraz −120 znajdź liczb˛e y ∈ {0, 1, 2, 3, 4} taka,˛ że x = y (mod 5). 3. Oblicz: a) (50 · 51 + 15) mod 7, b) 15 · 36 mod 7; c) 153 · (37)3 mod 7. 4. Oblicz: a) 1039 mod 11, b) 239 mod 5 c) 740 mod 10. 5. Przedstaw klasy abstrakcji relacji kongruencji dla m = 6. 6. Jak wygladaj ˛ a˛ działania dodawania i mnożenia w pierścieniu Z6 7. W pierścieniu Z8 wykonaj działania 7 + 6 oraz 7 · 6. 8. W pierścieniu Z8 rozwiaż ˛ równania: a) 1 + x = 0, b) 1 + x = 2, c) 5 + x = 0, d) 5 + x = 2. 1.20. Zadania 33 9. Podaj tabliczkȩ dodawania i mnożenia w ciele Z7 . Podaj elementy odwrotne do 5 i 6 w Z7 . 10. Dla liczb a = 600 i b = 1050 oblicz N W D(a, b) oraz liczby całkowite x i y spełniaja̧ce równanie xa + yb = N W D(a, b). 11. Oblicz N W D(667, 713). 12. Oblicz N W D(199816, 199819). 13. W pierścieniu Z5 rozwiaż ˛ równania: a) 4 · x = 1, b) 4 · x = 2. 14. W pierścieniu Z8 rozwiaż ˛ równania: a) 3 · x = 1, b) 3 · x = 2. 15. W pierścieniu Z17 rozwiaż ˛ równania: a) 8x = 2, b) 9x = 4. 16. W pierścieniu Z14 rozwiaż ˛ równania: a) 6x = 2, b) 6x = 9. 17. Znajdź całkowite rozwia̧zanie (x, y) spełniaja̧ce równanie: 17x + 40y = 1. 18. Podaj rozkład na czynniki pierwsze liczb 240 oraz 111. 19. Ile dzielników ma liczba 240? 20. Znajdź elementy odwrotne do wszystkich elementów dwracalnych w Z 12 . 21. Przedstaw tabel˛e funkcji f (x) = 4 · x + 5 w pierścieniu Z13 . 22. Przedstaw tabel˛e funkcji f (x) = 4 · x + 5 w pierścieniu Z12 . 23. Rozwiaż ˛ układ kongruencji: 3 = a (mod 5), 5 = a (mod 6). 24. Sprawdź, czy 100136 = 200146 (mod 30) 25. Dla jakich par reszt (a1 , a2 ) istnieja̧ liczby a spełniaja̧ce układ kongruencji: a1 a2 = a (mod 4), = a (mod 6). 26. Które elementy Z12 sa˛ resztami kwadratowymi? 27. Które elementy Z13 sa˛ resztami kwadratowymi? 28. Ile jest pierwiastków z 1 w Z30 ? 29. Pokaż,że w Z105 jest osiem pierwiastków z 1. 30. Przy pomocy algorytmu szybkiego pot˛egowania oblicz: a) 3 100 mod 13; b)2100 mod 15. 31. Oblicz: a) φ(24); b) φ(120). 34 Rozdział 1. Teoria liczb 1.21 Problemy 1.21.1 Najwi˛ekszy wspólny dzielnik 1. Udowodnij, że każda liczba postaci xa+yb, dla x i y całkowitych, jest wielokrotnościa̧ N W D(a, b), i na odwrót, każda wielokrotność N W D(a, b) jest postaci xa + yb, dla jakiś x i y całkowitych. 2. Udowodnij, że N W D(a, b) jest najmniejsza̧ dodatnia̧ liczba̧ d, dla której istnieje x i y całkowite, takie że xa + yb = d. 3. Zaprojektuj algorytm obliczania najwi˛ekszego wspólnego dzielnika trzech (lub k) liczb. 4. Które z liczb całkowitych można przedstawić w postaci x · 10 + y · 21 (x i y ∈ Z)? 5. Które z liczb całkowitych można przedstawić w postaci x · 10 + y · 12 (x i y ∈ Z)? 1.21.2 Najmniejsza wspólna wielokrotno´ sc´ Niech N W W (a, b) oznacza najmniejsza̧ wspólna̧ wielokrotność liczb a i b. 1. Udowodnij, że N W W (a, b) dzieli każda̧ inna̧ wspólna̧ wielokrotność liczb a i b. 2. Pokaż, że N W W (a, b) · N W D(a, b) = a · b. 3. Jakie liczby całkowite dziela˛ si˛e jednocześnie przez 24 i przez 54? 1.21.3 Liczby wzgl˛ednie pierwsze Udowodnij, że jeżeli m jest wzglȩdnie pierwsze z a i b, to m jest wzglȩdnie pierwsze z iloczynem tych liczb ab. Jako wniosek udowodnij, że jeżeli m jest wzglȩdnie pierwsze z każda̧ z liczb m 1 , ..., mk , to m jest wzglȩdnie pierwsze z iloczynem tych liczb k Y mi . i=1 1.21.4 Liczby pierwsze 1. Udowodnij, że dla każdego k istnieje ciag ˛ k kolejnych liczb złożonych. 2. Udowodnij, że liczb pierwszych jest nieskończenie wiele. 3. Udowodnij, że jeżeli dwie liczby x i y spełniaja˛ warunki: x2 = y 2 (mod n) oraz x 6= y (mod n) i x 6= −y (mod n), to N W D(x+y, n) = d jest nietrywialnym dzielnikiem n. 1.21. Problemy 35 1.21.5 Układ kongruencji Istnieje inny sposób rozwia̧zywania układu kongruencji. Pokażemy go na przykładzie układu a1 a2 = a (mod 3), = a (mod 5), (1.8) Najpierw szukamy dwóch liczb a01 i a10 spełniaja̧cych warunki 0 1 1 0 = = = = a01 a01 a10 a10 (mod (mod (mod (mod 3), 5), 3), 5), Udowodnij, że rozwia̧zaniem układu (1.8) jest a = a1 · a10 + a2 · a01 (mod 15). Jak policzyć a01 oraz a10 ? Ponieważ 3 i 5 sa̧ wzglȩdnie pierwsze, wiȩc istnieja̧ x i y takie, że 3x + 5y = 1 Pokaż, że jeżeli podstawimy a01 = 3x (mod 15) oraz a10 = 5y dobrze. (mod 15), to bȩdzie ´ 1.21.6 Chinskie twierdzenie o resztach Z chińskiego twierdzenia o resztach wynika, że jeżeli N W D(m, n) = 1, to funkcja f (x) = (x mod m, x mod n) stanowi wzajemnie jednoznaczne odwzorowanie pomiȩdzy Z mn a iloczynem kartezjańskim Zm × Zn . Na iloczynie kartezjańskim Zm × Zn możemy określić działania dodawania i mnożenia w nastȩpuja̧cy sposób: (a, b) + (c, d) = (a + b, c + d) (a, b) · (c, d) = (a · b, c · d). Łatwo można sprawdzić, że zbiór Zm × Zn z tak określonymi działaniami, jest pierścieniem. Ponadto funkcja f spełnia warunki f (x+y) = f (x)+f (y) oraz f (x·y) = f (x)·(y). 1.21.7 System one-pad System „one-pad” (porównaj rozdział o funkcjach boolowskich) może być stosowany do cia̧gów liter alfabetu łacińskiego. Wtedy utożsamiamy litery z liczbami od 0 do 25 i zamiast operacji ⊕ stosujemy: x+k (mod 26), 36 Rozdział 1. Teoria liczb czyli resztȩ z dzielenia (x + k) przez 26. Jak wygla̧da wtedy operacja deszyfrowania? Pokaż, że system one-pad z literami jest równie bezpieczny jak system z dwoma cyframi 0 i 1. 1.21.8 Przestrzen´liniowa Zbiór B = {0, 1} z działaniami xor ⊕ oraz koniunkcji · jest ciałem Z 2 . Udowodnij, że zbiór B n jest przestrzenia̧ liniowa̧ nad ciałem {0, 1}, z ⊕ jako dodawaniem oraz mnożeniem przez skalar zdefiniowanym przez: • 0 · x = 0 (tutaj zero po lewej stronie jest zerem z ciała, a zero po prawej stronie jest wektorem zerowym), • 1 · x = x. 1.21.9 Uogólnienie małego twierdzenia Fermata Udowodnij Twierdzenie 1.56 Niech G b˛edzie dowolna˛ grupa. ˛ Wtedy dla dowolnego a ∈ G a|G| = 1 .