Matematyka Dyskretna. Andrzej Szepietowski. 25 marca 2004 roku

Podobne dokumenty
Teoria liczb. Magdalena Lemańska. Magdalena Lemańska,

Przykładowe zadania z teorii liczb

Matematyka dyskretna

Matematyka dyskretna

Twierdzenie Eulera. Kongruencje wykład 6. Twierdzenie Eulera

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

Wybrane zagadnienia teorii liczb

1. Wykład NWD, NWW i algorytm Euklidesa.

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

0 --> 5, 1 --> 7, 2 --> 9, 3 -->1, 4 --> 3, 5 --> 5, 6 --> 7, 7 --> 9, 8 --> 1, 9 --> 3.

Matematyka dyskretna

Algorytmy i struktury danych. Wykład 4

Matematyka Dyskretna Zestaw 2

Zastosowanie teorii liczb w kryptografii na przykładzie szyfru RSA

Luty 2001 Algorytmy (7) 2000/2001

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, Kryptografia: algorytmy asymetryczne (RSA)

Sumy kwadratów kolejnych liczb naturalnych

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, Kryptografia: algorytmy asymetryczne (RSA)

Ciała i wielomiany 1. przez 1, i nazywamy jedynką, zaś element odwrotny do a 0 względem działania oznaczamy przez a 1, i nazywamy odwrotnością a);

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

Zadania do samodzielnego rozwiązania

Podstawy systemów kryptograficznych z kluczem jawnym RSA

Kongruencje twierdzenie Wilsona

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.

Matematyka Dyskretna. Andrzej Szepietowski. 17 marca 2003 roku

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 5

Zegar ten przedstawia reszty z dzielenia przez 6. Obrazuje on jak kolejne liczby można przyporządkować do odpowiednich pokazanych na zegarze grup.

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

Zestaw zadań dotyczących liczb całkowitych

WYRAŻENIA ALGEBRAICZNE

KONGRUENCJE. 1. a a (mod m) a b (mod m) b a (mod m) a b (mod m) b c (mod m) a c (mod m) Zatem relacja kongruencji jest relacją równoważności.

LICZBY PIERWSZE. 14 marzec Jeśli matematyka jest królową nauk, to królową matematyki jest teoria liczb. C.F.

Kongruencje pierwsze kroki

Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

MADE IN CHINA czyli SYSTEM RESZTOWY

Algorytmy w teorii liczb

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych

Odwrotne twierdzenie Fermata. Odwrotne twierdzenie Fermata

Rozdział 4. Macierze szyfrujące. 4.1 Algebra liniowa modulo 26

0 + 0 = 0, = 1, = 1, = 0.

6. Liczby wymierne i niewymierne. Niewymierność pierwiastków i logarytmów (c.d.).

Liczby rzeczywiste. Działania w zbiorze liczb rzeczywistych. Robert Malenkowski 1

LX Olimpiada Matematyczna

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.

Kongruencje oraz przykłady ich zastosowań

Maciej Grzesiak. Wielomiany

Jarosław Wróblewski Matematyka Elementarna, zima 2012/13

Elementy teorii liczb. Matematyka dyskretna

Kongruencje i ich zastosowania

DZIAŁANIA NA UŁAMKACH DZIESIĘTNYCH.

Podstawowe struktury algebraiczne

Jarosław Wróblewski Matematyka Elementarna, zima 2013/14. Czwartek 21 listopada zaczynamy od omówienia zadań z kolokwium nr 2.

Jarosław Wróblewski Matematyka Elementarna, lato 2012/13. Czwartek 28 marca zaczynamy od omówienia zadań z kolokwium nr 1.

Sumy kolejnych bikwadratów

Teoria liczb. Zajmuje się własnościami liczb, wszystkim całkowitych

2. Liczby pierwsze i złożone, jednoznaczność rozkładu na czynniki pierwsze, największy wspólny dzielnik, najmniejsza wspólna wielokrotność.

Pierwiastki pierwotne, logarytmy dyskretne

Logarytmy. Funkcje logarytmiczna i wykładnicza. Równania i nierówności wykładnicze i logarytmiczne.

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

4. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych.

Znaleźć wzór ogólny i zbadać istnienie granicy ciągu określonego rekurencyjnie:

Arytmetyka. Działania na liczbach, potęga, pierwiastek, logarytm

3. Macierze i Układy Równań Liniowych

Zaawansowane algorytmy i struktury danych

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

LISTA 1 ZADANIE 1 a) 41 x =5 podnosimy obustronnie do kwadratu i otrzymujemy: 41 x =5 x 5 x przechodzimy na system dziesiętny: 4x 1 1=25 4x =24

1. Określenie pierścienia

Liczby pierwsze. Kacper Żurek, uczeń w Gimnazjum nr 1 im. Jana Pawła II w Giżycku.

I) Reszta z dzielenia

Przypomnienie wiadomości dla trzecioklasisty C z y p a m i ę t a s z?

Obóz Naukowy Olimpiady Matematycznej Gimnazjalistów

Liczby zespolone. x + 2 = 0.

W. Guzicki Zadanie IV z Informatora Maturalnego poziom rozszerzony 1

1. Liczby wymierne. x dla x 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba)

1 Całki funkcji wymiernych

Algebra abstrakcyjna

LICZBY PIERWSZE. Jan Ciurej Radosław Żak

0.1 Pierścienie wielomianów

Rozdział 1. Zadania. 1.1 Liczby pierwsze. 1. Wykorzystując sito Eratostenesa wyznaczyć wszystkie liczby pierwsze mniejsze niż 200.

Dlaczego nie wystarczają liczby wymierne

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Bukiety matematyczne dla gimnazjum

Grupy, pierścienie i ciała

Matematyka dyskretna. Andrzej Łachwa, UJ, A/15

Pierścień wielomianów jednej zmiennej

Kongruencje. Sławomir Cynk. 24 września Nowy Sącz. Instytut Matematyki Uniwersytetu Jagiellońskiego

Ćwiczenia z teoria liczb, ciąg dalszy (pt 15 maja) Matematyka Dyskretna

CIĄGI wiadomości podstawowe

Jeśli lubisz matematykę

Kurs ZDAJ MATURĘ Z MATEMATYKI MODUŁ 2 Teoria liczby rzeczywiste cz.2

Algebra Liniowa 2 (INF, TIN), MAP1152 Lista zadań

Matematyka dyskretna dla informatyków

Łatwy dowód poniższej własności pozostawiamy czytelnikowi.

O MACIERZACH I UKŁADACH RÓWNAŃ

Definicja i własności wartości bezwzględnej.

Matematyka dyskretna

Transkrypt:

Matematyka Dyskretna Andrzej Szepietowski 25 marca 2004 roku

Rozdział 1 Teoria liczb 1.1 Dzielenie całkowitoliczbowe Zacznijmy od przypomnienia szkolnego algorytmu dzielenia liczb naturalnych. Podzielmy 174 przez 12. 1 4 1 7 4 : 1 2 1 2 5 4 4 8 6 W wyniku dzielenia otrzymaliśmy iloraz 14 i resztę 6. Liczby te spełniają równanie 174 = 14 12 + 6 i reszta jest mniejsza od dzielnika. Podobnie możemy postąpić dla dowolnych liczb naturalnych a i b pod warunkiem, że b 0. Twierdzenie 1.1 Dla dowolnych liczb naturalnych a oraz b > 0 istnieje dokładnie jedna para liczb naturalnych q i r spełniających warunki: a = bq + r 0 r < b q nazywa się ilorazem całkowitoliczbowym a przez b, a r nazywa się reszta z dzielenia Zauważmy, że iloraz q jest zaokrągleniem w dół normalnego ilorazu q = a b. Iloraz całkowitoliczbowy liczb a i b będziemy oznaczać przez a resztę przez a b lub a div b. a mod b. 3

4 Rozdział 1. Teoria liczb Przykład 1.2 22 4 = 5 oraz 22 mod 4 = 2, ponieważ 22 = 5 4 + 2 oraz 0 2 < 4. Powyższe definicje zakładały, że a i b są naturalne. W przypadku, gdy a i b są 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 a b zaokrąglenie ilorazu a b w dół, gdy a b jest dodatnie i a b, zaokrąglenie ilorazu a b w górę, gdy a b jest ujemne. Reszta, którą oznacza się przez a mod b, jest określona wzorem: Mamy więc, na przykład: a mod b = a-(a div b)*b. 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 0 dzieli liczbę całkowitą b, jeżeli istnieje liczba całkowita z, taka że: b = az. Będziemy to oznaczać przez a b. Zauważmy, że zachodzi wtedy: Liczbę a nazywamy dzielnikiem liczby b. Przykład 1.3 3 6, 3 6 oraz 3 0. b mod a = 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 istnieją dwie liczby całkowite k i m, takie że: b = ak oraz c = am. Mamy więc: oraz b + c = ak + am = a(k + m) b c = ak am = a(k m) czyli a dzieli b + c oraz b c.

1.3 Relacja kongruencji 1.3. Relacja kongruencji 5 Niech m będzie dowolną liczbą naturalną m 0. Powiemy, że dwie liczby całkowite a i b są 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), 3 = 0 (mod 3), 1 = 2 (mod 3), 1 = 7 (mod 3). Jeżeli a i b są dodatnie, to a = b same reszty z dzielenia przez m. (mod m) wtedy i tylko wtedy, gdy a i b mają takie Lemat 1.6 Relacja przystawania modulo jest relacja równoważności, czyli spełnia następujace trzy warunki: zwrotność, dla każdego a zachodzi a = a (mod m), symetrię, dla każdego a i b, jeżeli a = b (mod m), to b = a (mod m), przechodniość, dla każdego a, b i c, jeżeli a = b (mod m) i b = c (mod m), to 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). Ponadto relacja modulo jest zgodna z dodawaniem, odejmowaniem i mnożeniem. Twierdzenie 1.7 Jeżeli a = b (mod m) oraz c = d (mod m), to: a + c = b + d (mod m), a c = b d (mod m), ac = bd (mod m). Dowód. Z założenia mamy: z tego zaś łatwo wynika, że m dzieli: m (a b) oraz m (c d), (a + c) (b + d), (a c) (b d) oraz ac bd = a(c d) + d(a b), czyli zachodzi teza twierdzenia. 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: 10 k = 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: to x = d i 10 i, x = d i (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 2002 1999 4001999 wystarczy zauważyć, że liczba 2002 jest parzysta, więc także wynik mnożenia powinien byż parzysty. Mówiac inaczej 2002 = 0 (mod 2), więc na podstawie twierdzenia 1.7 mamy 2002 1999 = 0 (mod 2), a liczba 4001999 przystaje do jedynki modulo 2. Podobnie możemy się przekonać, że 2002 1999 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ęc 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ępujący sposób: [x] = {y y = x (mod m)}. Innymi słowy, klasa abstrakcji liczby x to zbiór wszystkich liczb z nią równoważnych. Przykład 1.10 Dla m = 3 mamy trzy klasy abstrakcji

1.5. Pierścień Z m 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 pokrywają się. Lemat 1.11 Jeżeli x = y (mod m), to [x] = [y]. Dowód. Jeżeli z [x], to i z przechodniości relacji mamy z = x (mod m) z = y (mod m), czyli z [y], a więc pokazaliśmy, że: [x] [y]. Identycznie pokazujemy zawieranie odwrotne [y] [x]. Następna ważna własność klas abstrakcji to ich rozłączność. Lemat 1.12 Jeżeli [x] [y], to [x] = [y], inaczej, dwie klasy abstrakcji [x] i [y] albo sa identyczne, albo sa rozłaczne. Dowód. Przypuśćmy, że klasy [x] i [y] mają wspólny element z. Wtedy: Z przechodniości mamy wtedy z = x (mod m) oraz z = y (mod m). x = y (mod m), a z lematu 1.11 [x] = [y]. 1.5 Pierścień Z m Klasy abstrakcji relacji modulo m wyglądają następująco: [0], [1],..., [m 1]. Dla dowolnego k z przedziału 0 k m 1, klasa [k] jest postaci: [k] = {jm + k j Z}

8 Rozdział 1. Teoria liczb (Z oznacza zbiór liczb całkowitych). Zbiór klas abstrakcji modulo m oznacza się przez Z m. Ponieważ relacja modulo jest zgodna z działaniami dodawania i mnożenia, możemy zdefiniować dodawanie i mnożenie na klasach abstrakcji. Mówiąc w skrócie, aby wykonać działanie na dwóch klasach abstrakcji, wybieramy dowolnych przedstawicieli tych klas i wykonujemy działania na tych przedstawicielach. Dokładniej, dodawanie klas abstrakcji definiujemy następują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 są dobrze zdefiniowane; że wynik działania na dwóch klasach nie zależy od wyboru reprezentantów. Lemat 1.13 Jeżeli [x] = [y] oraz [u] = [w], to: [x + u] = [y + w], [xu] = [yw] oraz [x u] = [y w]. Dowód. Z założenia mamy: a z twierdzenia 1.7: x = y (mod m) oraz u = w (mod m). [x + u] = [y + w], [x u] = [y w] oraz [xu] = [yw]. 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 spełniają następujące warunki: [0], [1],..., [n 1] dodawanie oraz mnożenie sa przemienne i łaczne, 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],

1.5. Pierścień Z m 9 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łniajacymi 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. 1.5.1 Pierścień Z 5 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: Z 5 = {0, 1, 2, 3, 4} z dodawaniem i mnożeniem określonym następują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 Z 5 element odwrotny względem mnożenia, czyli dla każdego x Z 5 {0} istnieje x 1, taki że xx 1 = 1: 1 1 = 1, 2 1 = 3, 3 1 = 2, 4 1 = 4. Dlatego Z 5 jest ciałem, czyli pierścieniem przemiennym z jedynką i z odwrotnością względem mnożenia. 1.5.2 Pierścień Z 4 Rozważmy teraz pierścień reszt modulo 4: Z 4 = {0, 1, 2, 3}, gdzie dodawanie i mnożenie jest określone następującymi tabelami:

10 Rozdział 1. Teoria liczb + 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 1 2 3 0 0 0 0 0 x 1 0 1 2 3 2 0 2 0 2 3 0 3 2 1 Z 4 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 Z m mamy pq = 0 i ani p, ani q nie mają 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, czyli q = 0, sprzeczność. Tak więc Z m nie jest ciałem, jeżeli m jest liczbą złożoną. W dalszej części tego rozdziału zobaczymy, że jeżeli m jest liczbą pierwszą, 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). Przykład 1.16 NW D(4, 6) = 2, NW D(4, 0) = 4, NW D(4, 6) = 2. 1.7 Algorytm Euklidesa Aby obliczyć największy wspólny dzielnik dwóch dodatnich liczb naturalnych a, b robimy co następuje dopóki a b 0 wykonuj: jeżeli a b, to a := a mod b w przeciwnym przypadku b := b mod a; NWD:=a+b Powyższy algorytm oblicza resztę z dzielenia większej liczby przez mniejszą 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:

1.7. Algorytm Euklidesa 11 a b 36 15 6 15 6 3 0 3 Tak więc 3 jest największym wspólnym dzielnikiem liczb 15 i 36. Poprawność algorytmu Euklidesa wynika z poniższego lematu. Lemat 1.17 Niech a i b będą dwoma liczbami naturalnymi i niech 0 < b a. Wtedy para a, b ma taki sam zbiór wspólnych dzielników jak para a mod b, b. Dowód. Z definicji ilorazu i reszty mamy a = (a b) b + a mod b. Jeżeli liczba r jest wspólnym dzielnikiem pary a, b, to r dzieli także resztę a mod b, czyli r jest wspólnym dzielnikiem pary (a mod b), b. Na odwrót, jeżeli liczba r jest wspólnym dzielnikiem pary (a mod b), b, to r dzieli także a, czyli r jest wspólnym dzielnikiem pary a, b. Tak więc po każdej iteracji pętli while para a, b 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 a = 0 lub b = 0, NW D = a + b, 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 dopóki liczba max{a, b} jest coraz mniejsza, a ponieważ jest to zawsze liczba naturalna dodatnia, więc nie może zmniejszać się w nieskończoność. Twierdzenie 1.18 Niech a i b będą 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ówiac inaczej, d jest kombinacją całkowitoliczbową liczb a i b. Dowód. Niech a 0 i b 0 oznaczają początkowe wartości zmiennych a i b, odpowiednio. Pokażmy, że wszystkie wartości, jakie przyjmują zmienne a i b w trakcie wykonywania algorytmu Euklidesa, są całkowitoliczbowymi kombinacjami liczb a 0 i b 0. Na początku, gdy a = a 0 i b = b 0, mamy: a = 1a 0 + 0b 0, b = 0a 0 + 1b 0. Załóżmy teraz, że po i-tej iteracji pętli a > b oraz że zachodzi: a = x a a 0 + y a b 0, b = x b a 0 + y b b 0.

12 Rozdział 1. Teoria liczb Wtedy w (i + 1) iteracji a będzie pomniejszone o b (a b) i będziemy mieli: a = (x a x b (a b))a 0 + (y a y b (a b))b 0 oraz b = x b a 0 + y b b 0. Z tego wynika, że także ostateczna wartość d jest kombinacją liczb a 0 i b 0. 1.7.1 Rozszerzony algorytm Euklidesa Algorytm Euklidesa można tak zmodyfikować, aby oprócz największego wspólnego dzielnika NW D(a, b), wyliczał także liczby x i y, takie że: Oto ten algorytm xa + yb = NW D(a, b). x a := 1; y a := 0; x b := 0; y b := 1; dopóki a b 0 wykonuj: jeżeli a b, to a := a mod b x a := x a x b (a b); y a := y a y b (a b) w przeciwnym przypadku b := b mod a; x b := x b x a (b a); y b := y b y a (b a) NW D := a + b jeżeli a > 0, to x := x a ; y := y a ; jeżeli b > 0, to x := x b ; y := y b ; W poniższej tabeli pokazano kolejne kroki działania rozszerzonego algorytmu Euklidesa na parze liczb 36 i 15: a b x a y a x b y b 36 15 1 0 0 1 6 15 1-2 0 1 6 3 1-2 -2 5 0 3 5-12 -2 5 Tak więc liczbę 3 można przedstawić jako kombinację liczb 15 i 36 w następujący sposób: 3 = ( 2) 36 + (5) 15.

1.8. Liczby pierwsze i względnie pierwsze 13 Zauważmy, że jeżeli jakaś liczba r dzieli liczby a i b, to dzieli także każdą ich kombinację całkowitą 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.19 NW D(a, b) jest podzielny przez każdy wspólny dzielnik liczb a i b. Z lematu 1.19 wynika, że największy wspólny dzielnik NW 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.20 Liczba naturalna d jest największym wspólnym dzielnikiem liczb a i b wtedy i tylko wtedy gdy d jest wspólnym dzielnikiem a i b oraz istnieja liczby całkowite x i y, takie że d = xa + yb. Dowód Jeżeli NW D(a, b) = d to d a, d b oraz (z twierdzenia 1.18) istnieją 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. Wniosek 1.21 Jeżeli istnieja liczby całkowite x i y, takie, że xa+yb = 1, to NW D(a, b) = 1. Przykład 1.22 Ponieważ: 2000 1998 = 2 oraz 2 jest wspólnym dzielnikiem 1998 i 2000, więc NW D(1998, 2000) = 2. 2001 1999 = 2, więc NW D(1999, 2001) dzieli 2, a ponieważ 2 nie dzieli ani 1999, ani 2001, więc NW D(1999, 2001) = 1. 1.8 Liczby pierwsze i względnie pierwsze Dwie liczby naturalne a i b są względnie pierwsze, jeżeli NW D(a, b) = 1, a liczba naturalna p jest pierwsza, jeżeli p > 1 i jedynymi dzielnikami naturalnymi p są 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. Istnieją wtedy dwie liczby k, m < n, takie, że n = k m.

14 Rozdział 1. Teoria liczb 1.9 Rozkład liczb na czynniki pierwsze W tym rozdziale zobaczymy, że każdą liczbę naturalną n > 1 można rozłożyć na czynniki pierwsze i że taki rozkład jest jednoznaczny z dokładnością do kolejności czynników. Na przykład: 12 = 2 2 3 i 180 = 2 2 3 2 5. Przyjmujemy przy tym, że jeżeli liczba jest pierwsza, to jej rozład składa się tylko z jednej liczby. Twierdzenie 1.23 Każda liczbę naturalną n > 1 można przedstawić jako iloczyn liczb pierwszych (niekoniecznie różnych): n = q 1 q 2 q r. Dowód nie wprost. 2 jako liczba pierwsza ma trywialny rozkład składający się z jednej liczby. Przypuśćmy, że istnieje liczba naturalna n, której nie można przedstawić jako iloczynu liczb pierwszych i że n jest najmniejszą taką liczbą. n nie może być liczbą pierwszą (bo wtedy n = q 1 ), więc n jest liczbą złożoną, czyli jest postaci: n = km dla k, m < n. Ale ponieważ k i m są mniejsze od n, więc można je rozłożyć na czynniki pierwsze k = p 1 p 2 p s oraz m = r 1 r 2 r t, ale wtedy, wbrew założeniu, mamy rozkład liczby n na czynniki pierwsze: n = p 1 p 2 p s r 1 r 2 r t. Aby pokazać, że rozkład jest jednoznaczny (z dokładnością do kolejności czynników), musimy najpierw udowodnić dwa lematy. Lemat 1.24 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.18, istnieją 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 prawą stronę, czyli c.

1.10. Elementy odwracalne 15 Lemat 1.25 Jeżeli liczba pierwsza p dzieli iloczyn liczb pierwszych q 1 q 2 q r (niekoniecznie różnych), to wtedy p jest równe jednej z liczb q i. Dowód przez indukcję ze względu na r. Dla r = 1 mamy p q 1, a ponieważ q 1 jest pierwsza i p > 1, więc p = q 1. Załóżmy teraz, że teza zachodzi dla r i przypuśćmy, że p dzieli q 1 q 2 q r q r+1. Mamy dwa przypadki: albo p dzieli q r+1, albo nie. W pierwszym przypadku p = q r+1. W drugim przypadku mamy NW D(p, q r+1 ) = 1, bo 1 i q r+1 to jedyne dzielniki liczby q r+1. Z lematu 1.24 wynika teraz, że p dzieli q 1 q 2 q r, a z założenia indukcyjnego, że p = q i dla jakiegoś 1 i r.. Udowodnimy teraz, że rozkład liczby na czynniki pierwsze jest jednoznaczny, z dokładnością do kolejności czynników. Twierdzenie 1.26 Każda liczbę naturalną n > 1 można w dokładnie jeden sposób przedstawić w postaci iloczynu: n = p α1 1 pα2 2... pαr r, gdzie α i sa dodatnimi liczbami naturalnymi, p i sa liczbami pierwszymi oraz zachodzi p 1 < p 2 <... < p r. Dowód. Twierdzenie 1.23 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 najmniejszą liczbą z dwoma różnymi rozkładami: n = p α1 1 pα2 2... pαr r = q β1 1 qβ2 2... qβs s. (1.1) Wtedy z jednej strony p 1 nie może występować po prawej stronie równania (1.1), bo n p 1 byłoby mniejszą liczbą z niejednoznacznym rozkładem. Z drugiej strony p 1 dzieli prawą stronę, a więc, z lematu 1.25 występuje po prawej stronie. Mamy więc sprzeczność. Lemat 1.27 Jeżeli a i b sa względnie pierwsze, to ich rozkłady sa rozłaczne. To znaczy maja rozłaczny zbiór liczb pierwszych występujacych w ich rozkładach. 1.10 Elementy odwracalne Definicja 1.28 Element a Z m jest odwracalny, jeżeli istnieje b Z m, takie, że a b = 1 (mod m). b nazywamy elementem odwrotnym do a i oznaczamy przez a 1.

16 Rozdział 1. Teoria liczb Przykład 1.29 Liczba 3 jest odwracalna w Z 8 bo 3 3 = 1 (mod 8). Oprócz 3 w Z 8 odwracalne sa także 1, 5 i 7. Lemat 1.30 Liczba a Z m jest odwracalna wtedy i tylko wtedy, gdy NW D(a, m) = 1. Dowód. Jeżeli NW D(a, m) = 1, to istnieją liczby całkowite x i y, takie że: a więc m dzieli ax 1, czyli: xa + ym = 1, ax = 1 (mod m). Teraz wystarczy przyjąć za a 1 taką 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 czyli dla jakiegoś k. Mamy więc czyli NW D(a, m) = 1 (wniosek 1.21). a 1 a = 1 (mod m) a 1 a 1 = k m a 1 a + ( k)m = 1 Z powyższego dowodu wynika, że element odwrotny do a można wyliczyć stosując algorytm Euklidesa. Na przykład, policzmy element odwrotny do 12 w pierścieniu Z 17. Najpierw zastosujemy algorytm Euklidesa, aby obliczyć x i y, takie że: 12x + 17y = 1. Kolejne kroki algorytmu przedstawiono w tabeli: Mamy więc: czyli: ale: a b x a y a x b y b 17 12 1 0 0 1 5 12 1-1 0 1 5 2 1-1 -2 3 1 2 5-7 -2 3 1 0 5-7 -12 17 5 17 + ( 7)12 = 1, ( 7)12 = 1 (mod 17), 7 = 10 (mod 17), czyli 10 jest elementem odwrotnym do 12 w pierścieniu Z 17.

1.11. Funkcja liniowa 17 Definicja 1.31 Zbiór elementów odwracalnych w Z n oznaczamy przez Z n. Przykład 1.32 Z 8 = {1, 3, 5, 7}. Lemat 1.33 Jeżeli liczba m jest pierwsza, to każdy element a Z m, a 0, jest odwracalny, czyli pierścień Z m jest ciałem. Lemat 1.34 Jeżeli a, b Z n to ab Z n oraz a 1 Z n. To oznacza, że Z n z mnożeniem jest grupą. Dowód: Elementem odwrotnym do iloczynu ab jest b 1 a 1, a elementem odrotnym do a 1 jest a. 1.11 Funkcja liniowa Zastanówmy się jak w pierścieniu Z m działa funkcja liniowa f(x) = a x (mod m). Rozpatrzmy najpierw przypadek, gdy a i m są względnie pierwsze, czyli gdy NW D(a, m) = 1. Dla m = 8 i a = 3 wartości funkcji przedstawia tabela x 0 1 2 3 4 5 6 7 3x 0 3 6 1 4 7 2 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 rozwiązanie w pierścieniu Z m, jest ono równe x = a 1 b. Funkcja f jest permutacją w Z m i wykorzystuje się ją, gdy trzeba wymieszać (przepermutować) elementy Z m. Zauważmy, że f jest także permutacją w Z m. Rzeczywiście, jeżeli x Z m, to na podstawie lematu 1.34 f(x) = ax Z m. Mamy więc Lemat 1.35 Jeżeli NW D(a, m) = 1, to funkcja f(x) = ax jest funkcja wzajemnie jednoznaczną w Z m i w Z m. Rozpatrzmy teraz przypadek, gdy a i m nie są względnie pierwsze, czyli gdy NW D(a, m) = d > 1. Dla m = 8 i a = 6 wartości funkcji przedstawia tabela x 0 1 2 3 4 5 6 7 6x 0 6 4 2 0 6 4 2

18 Rozdział 1. Teoria liczb Zauważmy, że jeżeli b jest wartością 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 mogą być tylko liczby podzielne przez d. Lemat 1.36 Jeżeli NW D(a, m) = d oraz d b, to równania ax = b (mod m) oraz a d x = b (mod m d d ) sa równoważne, czyli maja ten sam zbiór rozwiazań w zbiorze liczb całkowitych. 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 czyli wtedy i tylko wtedy, gdy a d x b d = k m d, a d x = b d (mod m d ). Przypuśćmy teraz, że d dzieli b i rozwiążmy równanie ax = b (1.2) w pierścieniu Z m, czyli szukamy takich x {0,..., m 1}, że ax = b (mod m) (1.3) Z lematu 1.36, to równanie jest równoważne równaniu a d x = b d (mod m d ) (1.4)

1.12. Szyfry liniowe 19 Ale teraz NW D( a d, m d ) = 1 i równanie (1.4) ma dokładnie jedno rozwiązanie x 0 {0,..., m d 1} takie że a d x 0 = b (mod m d d ). Ale równania (1.4) i (1.3) są spełnione także przez liczby x 0, x 0 + m d, x 0 + 2 m d,..., x 0 + (d 1) m d. Są to wszystkie liczby ze zbioru {0,..., m 1} spełniające równania (1.4) i (1.3), czyli wszystkie rozwiązania równania (1.2) w pierścieniu Z m. Przykład 1.37 Rozwiażmy równanie 6x = 9 (mod 15). (1.5) Ponieważ N W D(6, 15) = 3, więc najpierw rozwiazujemy równanie 2x = 3 (mod 5) W Z 5 mamy 2 1 = 3 więc rozwiazaniem jest x 0 = 3 3 = 4. Tak więc rozwiazaniami równaia (1.5) w Z 15 sa liczby 4, 9, 14. 1.12 Szyfry liniowe Przypuśćmy, że mamy tekst zapisany za pomocą 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 Z 26 : a = 0, b = 1, c = 2,..., z = 25, wybieramy dwie liczby a, b Z 26, takie że NW D(a, 26) = 1, i szyfrujemy litera po literze według wzoru: C(x) = ax + b (mod 26). Funkcja deszyfrująca jest określona wzorem: Rzeczywiście: D(y) = a 1 y a 1 b (mod 26). 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 szyfrująca C(x) jest wzajemnie jednoznaczna.

20 Rozdział 1. Teoria liczb Przykład 1.38 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 x C(x) szyfr m 12 10 k a 0 20 u t 19 15 p e 4 8 i y 24 0 a k 10 16 q Słowo matematyka po zaszyfrowaniu wyglada tak: kupikupaqu. Jeżeli zaś zastosujemy ten sam szyfr do poczatkowego zdania z wiersza Lokomotywa Juliana Tuwima: stoi na stacji lokomotywa, to otrzymamy: spewhuspuotwneqekepagu. Szyfry liniowe są bardzo starym wynalazkiem. W prostszej wersji z a = 1 stosował je już Juliusz Cezar. Ich wadą jest to, że bardzo łatwo dają się łamać. Czasami wystarcza odgadnąć, jak zaszyfrowano dwie litery. Można to zrobić analizując częstości występowania liter w zaszyfrowanym tekście. Przykład 1.39 (kontynuacja przykładu 1.38) 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: Po odjęciu tych równań stronami mamy: 15 = 19a + b (mod 26), 4 = 14a + b (mod 26). 11 = 5a (mod 26). Korzystajac z algorytmu Euklidesa, możemy teraz wyliczyć element odwrotny do 5 w pierścieniu Z 26. Jest to 21, ponieważ: tak więc: ( 5)5 + 26 = 1 oraz 5 = 21 (mod 26), 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 21 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: m 1 = 3, m 2 = 5, m 3 = 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, pią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: m 1 = 2 m 2 = 3. W poniższej tabeli mamy zestawione reszty modulo 2 i 3 liczb od 0 do 5: a a (mod 2) a (mod 3) 0 0 0 1 1 1 2 0 2 3 1 0 4 0 1 5 1 2 Każda z liczb od 0 do 5 = 2 3 1 ma inny zestaw reszt oraz dla każdej pary reszt (a 1, a 2 ), spełniających warunek 0 a 1 < 2, 0 a 2 < 3, istnieje liczba a, taka że: Oczywiście 6 ma takie same reszty jak 0: a 1 = a (mod 2), a 2 = a (mod 3). 0 = 6 (mod 2), 0 = 6 (mod 3), i ogólnie, jeżeli dwie liczby a i b różnią 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ścią do pięciu.

22 Rozdział 1. Teoria liczb Sytuacja jest inna, jeżeli m 1 i m 2 nie są względnie pierwsze. Jeżeli, na przykład, m 1 = 4 i m 2 = 6, to wśród liczb od 0 do 23 = 4 6 1 istnieją takie, które mają 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 m 1 i m 2 są względnie pierwsze, to każda z liczb od 0 do m 1 m 2 1 ma inny zestaw reszt oraz dla każdej pary reszt (a 1, a 2 ), spełniających warunek 0 a 1 < m 1, 0 a 2 < m 2, istnieje liczba a, taka że: zachodzi bowiem poniższe twierdzenie. a 1 = a (mod m 1 ), a 2 = a (mod m 2 ), Twierdzenie 1.40 (chińskie twierdzenie o resztach) Niech m 1, m 2,..., m r będą dodatnimi liczbami względnie pierwszymi, to znaczy dla każdej pary 1 i < j r mamy NW D(m i, m j ) = 1, oraz niech a 1, a 2,..., a r będą dowolnymi resztami. Wtedy istnieje liczba całkowita a, taka że: a 1 = a (mod m 1 ), a 2 = a (mod m 2 ), (1.6)... a r = a (mod m r ). Ponadto jeżeli liczby a i b sa rozwiazaniami układu kongruencji (??), to ich różnica a b dzieli się przez iloczyn wszystkich liczb m i, czyli przez: r M = m i. i=1

1.13. Chińskie twierdzenie o resztach 23 Dowód. Najpierw udowodnimy drugą część twierdzenia. Dla każdego 1 i r mamy: a i = a (mod m i ) oraz a i = b (mod m i ). Po odjęciu stronami tych dwóch równań mamy: czyli 0 = a b (mod m i ), m i (a b), Druga część twierdzenia wynika z następującego lematu: Lemat 1.41 Jeżeli każda spośród liczb m i dzieli a b i liczby m 1,..., m r sa względnie pierwsze, to także ich iloczyn M dzieli a b. Dowód Lematu. Liczba m 1 dzieli a b, więc istnieje K 1 takie, że a b = K 1 m 1. Liczba m 2 też dzieli a b, a ponieważ jest względnie pierwsza z m 1, więc na podstawie Lematu 1.24, m 2 dzieli K 1 i mamy a b = K 2 m 2 m 1, dla jakiegoś K 2. Podobnie, liczba m 3 jest względnie pierwsza z m 1, więc dzieli iloczyn K 2 m 2, ale jest także względnie pierwsza z m 2, więc dzieli K 2 i mamy a b = K 3 m 3 m 2 m 1, dla pewnego K 3. Powtarzając to rozumowanie r razy dochodzimy do wniosku, że istnieje takie K r, że a b = K r m r m 1, Dowód Lematu, ciag dalszy. Zobaczymy teraz, że układ (1.6) ma rozwiązanie. Niech M i = M m i, czyli: M i = m 1 m i 1 m i+1... m r. Ponieważ M i i m i mają rozłączne rozkłady, więc NW D(m i, M i ) = 1 oraz istnieje N i, takie że: M i N i = 1 (mod m i ). Zauważmy, że jeżeli i j, to m i M j, oraz że każdy iloczyn m i M i ma następującą własność m i M i = 1 (mod m i ), m i M i = 0 (mod m j ) dla j i,

24 Rozdział 1. Teoria liczb Weźmy teraz: Z powyższej własności wynika, że a = r a i M i N i. i=1 a = a i (mod m i ) dla każdego i, a więc a jest rozwiązaniem układu równań (1.6). Przykład 1.42 W przypadku ukłau dwóch równań nasze rozumowanie można trochę uprościć. Weźmy, na przykład, układ a 1 = a (mod 3), (1.7) a 2 = a (mod 5), Ponieważ 3 i 5 sa względnie pierwsze, więc istnieja x i y takie, że 3x + 5y = 1 Za pomocą rozszerzonego algorytmu możemy wyliczyć x i y, mamy 3 2 + 5 ( 1) = 1 Teraz zauważmy, że iloczyny 3 2 oraz 5 ( 1) maja następujące własności Dlatego liczba jest rozwiazaniem układu 1.7 3 2 = 0 (mod 3), 3 2 = 1 (mod 5), 5 ( 1) = 1 (mod 3), 5 ( 1) = 0 (mod 5), a 2 3 2 + a 1 5 ( 1) = 1 Przykład 1.43 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 stosujac sposób chińskich generałów z liczbami 3, 5, 7 możemy liczyć żołnierzy z dokładnością 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: x 1 = x (mod 3), x 2 = x (mod 5), x 3 = x (mod 7), a na apelu wieczornym było y żołnierzy i otrzymano reszty: y 1 = y (mod 3), y 2 = y (mod 5), y 3 = y (mod 7), wtedy różnica x y spełnia następujący układ kongruencji: x 1 y 1 = x y (mod 3), x 2 y 2 = x y (mod 5), x 3 y 3 = x y (mod 7).

1.14. Obliczenia na dużych liczbach 25 1.14 Obliczenia na dużych liczbach Chińskie twierdzenie o resztach pozwala wnioskować o dużych liczbach za pomocą operacji na małych liczbach. Zobaczmy teraz kilka przykładów. Przykład 1.44 Rozważmy następujące równanie. 58 721 569 54 567 769 = 71 900 738 41 312 424 + 14 969 161 15 626 209. Chińskie twierdzenie o resztach daje możliwość sprawdzenia tego równania operując tylko na stosunkowo małych liczbach. Sprawdzamy to równanie liczac modulo kilka niedużych liczb względnie pierwszych, na przykład: m 1 = 999, m 2 = 1000, m 3 = 1001, m 4 = 1003, m 5 = 1007, m 6 = 1009. Jeżeli lewa strona równa się prawej modulo wszystkie te liczby, to równa się także w liczbach całkowitych, ponieważ iloczyn tych liczb m 1 m 2 m 3 m 4 m 5 m 6 > (10 3 ) 6 = 10 18 jest większy od lewej i prawej strony. Inny sposob, to sprawdzenie tej równości modulo wszystkie liczby pierwsze mniejsze od 50. Ich iloczyn jest większy od 10 17. Przykład 1.45 Zastanówmy się teraz nad rozwiazaniem równania x 56 606 581 = 71 900 738 41 312 424 + 14 969 161 15 626 209. Jeżeli spodziewamy się, że rozwiazaniem jest liczba naturalna, to znowu możemy wykorzystać obliczenia modulo. Wybieramy dużą liczbę pierwsza p, większa od każdej liczby występujacej w tym równaniu, a następnie rozwiazujemy to równanie w ciele Z p x = (56 606581) 1 (71 900 738 41 312 424 + 14 969 161 15 626 209). Tak otrzymane rozwiazanie możemy zweryfikować metodą z poprzedniego przykładu. Stosując ta metodę unikamy zaokrągleń, które przy bardziej skomplikowanych rachunkach moga się kumulować. Można, na przykład, w ten sposób rozwiazywać duże układy równań liniowych, w których wszystkie współczynniki i rozwiazania sa liczbami całkowitymi. Przykład 1.46 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 jedyną liczb a z przedziału 0, 1, 2,..., 14, która posiada reszty 4 = 1 (mod 3) oraz 4 = 4 (mod 5).

26 Rozdział 1. Teoria liczb 1.15 Algorytm rosyjskich chłopów mnożenia liczb W poprzednim podrozdziale obliczaliśmy iloczyny typu (x y) (mod m). Jeżeli wyrażenie to będziemy obliczać najpierw mnożąc, a potem licząc resztę, to wynik pośredni x y może być dużo większy niż m. W tym podrozdziale pokażemy jak obliczać takie wyrażenia bez dużych wyników pośrednich. W tym celu rozważmy następujący algorytm mnożenia dwóch liczb. Algorytm ten był stosowany w Rosji. Aby pomnożyć dwie liczby a i b naturalne postępujemy w następujący sposób: Na początku dwóch kolumn wpisujemy a oraz b Powtarzamy następujący ciąg instrukcji dopóki na końcu drugiej kolumny pojawi się 0. Ostatni wyraz w pierwszej kolumnie mnożymy przez dwa, Ostatni wyraz drugiej kolumny dzielimy przez 2 (bez reszty). Następnie dodajemy te wyrazy pierwszej kolumny, dla których w drugiej kolumnie jest liczba nieparzysta. Przykład 1.47 Poniższa tabela ilustruje działanie algorytmu podczas obliczania 24 20. Do kolumn z wartściami a i b dodaliśmy na poczatku kolumnę z numerem rzędu. i a b 0 24 20 1 48 10 2 96 5 3 192 2 4 384 1 5 768 0 Teraz należy dodać wartości z pierwszej kolumny, które znajdują się w drugim i czwartym rzędzie, czyli 24 20 = 96 + 384 = 480. Zauważmy, że rzędy sa numerowane od zera. Poprawność algorytmu wynika z faktu, że b może być przedstawione w postaci dwójkowej j b = d i 2 i. Ponieważ cyfry d i {0, 1}, więc b jest sumą potęg dwójki. Na przykład i=0 20 = 16 + 4 = 2 4 + 2 2.

1.16. Szybkie potęgowanie 27 Potęga 2 i występuje w takiej sumie, jeżeli w rozwinięciu dwójkowym b cyfra d i = 1. Mnożąc 24 przez 20 mamy 24 20 = 24 (2 4 + 2 2 ) = 24 2 4 + 24 2 2, czyli iloczyn 24 20 jest sumą wszystkich liczb postaci 24 2 i, dla których d i = 1. Tak właśnie liczy algorytm rosyjskich chłopów. W i-tym rzędzie pierwszej kolumny mamy wartość a 2 i. Jeżeli wyraz w drugiej kolumnie jest nieparzysty to i-ty bit rozwinięcia b jest równy d i = 1. Zastosujmy teraz algorytm rosyjskich chłopów do obliczania iloczynu a b (mod m). Algorytm mnożenia Dane wejściowe: czynniki mnożenia a oraz b. Dane wyjściowe: Iloczyn a b mod m iloczyn := 0 dopóki b > 0 wykonuj jeżeli b mod 2 = 1 to iloczyn := (iloczyn + a) mod m; a := (2 a) mod m; b := b 2; Zauważmy, że wyniki pośrednie, i ostateczny, należą do Z m i algorytm nie potrzebuje zbyt dużej pamięci. 1.16 Szybkie potęgowanie Teraz zastanowimy się jak można potęgować, czyli jak obliczyć a k mod n dla a Z n oraz k N. Pierwszy nasuwający się algorytm potęgowania polega na k krotnym mnożeniu przez a: y := 1; dla i od 0 do k wykonuj y := (y a) mod n W kryptografii oblicza się potęgi z wykładnikami posiadają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 = a 2, a 2 a 2 = a 4 i ogólnie a 2i a 2i = a 2i+1. Dlatego, aby obliczyć potęgę o wykładniku, który jest potęgą dwójki k = 2 j należy wykonać

28 Rozdział 1. Teoria liczb y := a; dla i od 0 do j wykonuj y := (y y) mod n Przykład 1.48 Aby obliczyć 2 16 w Z 21 obliczmy 2 2 = 2 2 = 4 (mod 21), 2 4 = 4 4 = 16 (mod 21), 2 8 = 16 16 = 4 (mod 21), 2 16 = 4 4 = 16 (mod 21). Jeżeli wykładnik jest sumą potęg dwójki k = 2 i + 2 j, to a k = a 2i a 2j. Przykład 1.49 Aby obliczyć 2 20 mod 21 trzeba wymnożyć 2 20 = 2 16 2 2 4 = 16 16 = 4 (mod 21). Zauważmy, że każda liczba naturalna k jest sumą potęg dwójki k = j d i 2 i, i=0 gdzie d i {0, 1} to cyfry rozwinięcia dwójkowego k. Powyższe uwagi sugerują następujący algorytm obliczania potęgi a k (mod m). Na początku dwóch kolumn wpisujemy a oraz k Powtarzamy następujący ciąg instrukcji dopóki na końcu drugiej kolumny pojawi się 0. Ostatni wyraz w pierwszej kolumnie podnosimy do kwadratu modulo m Ostatni wyraz drugiej kolumny dzielimy przez 2. Następnie wymnażamy te wyrazy pierwszej kolumny, dla których w drugiej kolumnie jest liczba nieparzysta. Jak widać algorytm ten jest podobny do algorytmu mnożenia z poprzedniego rozdziału. Przykład 1.50 Poniższa tabela ilustruje działanie algorytmu podczas obliczania 8 5 (mod 21). Do kolumn z wartściami a i k dodaliśmy na poczatku kolumnę z numerem rzędu. i a k 0 8 5 1 1 2 2 1 1 3 1 0

1.17. Pierwiastki kwadratowe 29 Teraz należy wymnożyć wartości z pierwszej kolumny, które znajdują się w zerowym, i drugim rzędzie, czyli 8 5 = 8 1 = 8 (mod 5). Zauważmy, że w i-tym wierszu pierwszej kolumny mamy potęgę 2 2i. Jeżeli wyraz w drugiej kolumnie jest nieparzysty to i-ty bit rozwinięcia k jest równy d i = 1. Poniżej mamy powyższy algorytm w pseudo Pascalu. Algorytm szybkiego potęgowania Dane wejściowe: podstawa a oraz wykładnik k. Dane wyjściowe: Potęga a k mod n potega := 1 dopóki b > 0 wykonuj jeżeli b mod 2 = 1 to iloczyn := (potega a) mod n; a := (a a) mod n; b := b 2; Zauważmy, że wyniki pośrednie, i ostateczny, należą do Z m i algorytm nie potrzebuje zbyt dużej pamięci. Algorytmu tego nie można stosować do obliczania a k w liczbach całkowitych, jeżeli k jest duże. Wtedy wynik ostateczny oraz pośrednie będą zbyt duże, żeby mógł się zmieścić w pamięci komputera. 1.17 Pierwiastki kwadratowe Definicja 1.51 Liczbę y nazywamy pierwiastkiem kwadratowym liczby x w pierścieniu Z m, jeżeli x = y 2 (mod m). Przykład 1.52 W Z 5 pierwiastkami 4 sa 2 i 3, ponieważ 2 2 = 3 2 = 4 (mod 5) a liczba 2 nie posiada pierwiastka. Zauważmy, że jeżeli y 2 = x (mod m) to (m y) 2 = m 2 2my + y 2 = y 2 = x (mod m), czyli m y = y (mod m), też jest pierwiastkiem x. Lemat 1.53 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).

30 Rozdział 1. Teoria liczb Przykład 1.54 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 dowolną liczbę y, dla której oraz Wtedy y mod p = 1 lub y mod p = 1 y mod q = 1 lub y mod q = 1 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 1 (mod p) oraz 1 1 (mod q) i mamy wtedy cztery różne pierwiastki z 1, y 1, y 2, y 3, y 4. Są to liczby dla których y 1 mod p = 1, y 1 mod q = 1, y 2 mod p = 1, y 2 mod q = 1, y 3 mod p = 1, y 3 mod q = 1, y 4 mod p = 1 y 4 mod q = 1. Zauważmy, że y 1 = 1 (mod n) oraz y 4 = 1 (mod n). 1.18 Funkcja Eulera Definicja 1.55 Funkcja Eulera, jest to funkcja, która liczbie m przypisuje φ(m) liczbę elementów odwracalnych w Z m. Z definicji przyjmujemy φ(1) = 1. Przykład 1.56 φ(8) = 4, bo w Z 8 odwracalne sa {1, 3, 5, 7}. Podobnie φ(2) = 1, φ(3) = 2, φ(4) = 2, φ(6) = 2, φ(9) = 6. Lemat 1.57 a) Jeżeli p jest liczba pierwsza, to dla dowolnego α 1, φ(p α ) = p α 1 (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 są te, które są podzielne przez p, jest ich pα p = pα 1, czyli φ(p α ) = p α p α 1 = p α 1 (p 1).

1.19. Małe twierdzenie Fermata 31 b) Najpierw zauważmy, ze dla dowolnej liczby x, 0 x < mn wtedy i tylko wtedy gdy NW D(x, mn) = 1 NW D(x, m) = 1 oraz NW D(x, n) = 1 a to zachodzi wtedy i tylko wtedy gdy reszty r m = x mod m oraz r n = x mod n spełniają warunki NW D(r m, m) = 1 oraz NW D(r n, n) = 1 (1.8) Par reszt (r m, r n ) spełniających warunek (1.8) 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). 1.19 Małe twierdzenie Fermata Twierdzenie 1.58 (Fermata) Niech a Z m, wtedy a φ(m) = 1 (mod m). Dowód Niech a 1, a 2,..., a φ(m) to będą wszystkie elementy Z m. Jeżeli pomnożymy je przez a aa 1, aa 2,..., aa φ(m) to zgodnie z lematem 1.35 otrzymamy te same elementy tylko w innej kolejności. Wymnóżmy teraz elemnty obu ciągów φ(m) i=1 a i = φ(m) i=1 φ(m) aa i = a φ(m) i=1 a i (mod m). Po pomnożeniu przez odwrotność φ(m) i=1 a i otrzymamy tezę twierdzenia. Wniosek 1.59 Jeżeli p jest liczba pierwsza, to dla każdego a względnie pierwszego z p mamy a p 1 = 1 (mod p).

32 Rozdział 1. Teoria liczb 1.20 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 są 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 NW 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 jakąś zaszyfrowaną wiadomość x. Traktujemy tę wiadomość jako liczbę x < n. (Jeżeli wiadomość jest ciągiem znaków, to kodujemy każdy znak jako 8 bitów i cały ciąg może być traktowany jako liczba w postaci dwójkowej.) Bob szyfruje wiadomość przy pomocy funkcji szyfrującej C A (x) = x e mod n i przesyła ją Alicji. Alicja odszyfrowuje za pomocą funkcji deszyfrującej D A (y) = y d mod n. Pokażemy teraz, że jeżeli NW D(x, n) = 1, to Mamy D A (C A (x)) = x. D A (C A (x)) = x ed mod n. Ale ed = 1 (mod φ(n)), więc istnieje k takie, że ed = 1 + kφ(n), czyli D A (C A (x)) = x 1+kφ(n) = x x kφ(n) (mod n) ale ponieważ NW D(x, n) = 1, więc mamy x kφ(n) = (x φ(n) ) k = 1 (mod n). Tak więc D A (C A (x)) = x. W powyższym rozumowaniu zakładaliśmy, że NW 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 C A (D A (x)) = x.

1.21. Testy pierwszości 33 Niesymetryczne szyfry dają nowe możliwości. Można ich na przykład używać do podpisu. Aby podpisać jakąś wiadomość m, Alicja szyfruje ją swoim szyfrem prywatnym D A (m) i jest to podpis wiadomości m. Alicja wysyła Bobowi parę (m, D A (m)). Żeby sprawdzić, że wszystko się zgadza Bob szyfruje podpis publicznym kluczem Alicji i sprawdza czy C A (D A (m)) = m. 1.21 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 mogą być przydatne. 1.21.1 Test naiwny Najprostszy sposób to, dzielić n przez kolejne liczby (pierwsze) aż do n. Jednak ten test jest zupełnie niepraktyczny, jeżeli n ma kilkaset bitów. 1.21.2 Test Fermata Drugi test jest algorytmem probabilistycznym i opiera się na twierdzeniu Fermata 1.58. Losujemy liczbę a < n i najpierw sprawdzamy, czy NW D(a, n) = 1. Jeżeli a i n nie są względnie pierwsze, i NW D(a, n) = d > 1, to d jest dzielnikiem n i n nie jest pierwsza. Jeżeli NW D(a, n) = 1, to obliczamy a n 1 mod n. Jeżeli a n 1 1 (mod n), to orzekamy, że n jest liczbą złożoną. Jeżeli a n 1 = 1 (mod n), to orzekamy, że liczba n jest pierwsza. Zauważmy, że jeżeli wylosujemy liczbę a, dla której a n 1 1 (mod n), to wtedy mamy pewność, że n nie jest liczbą pierwszą. Wynika to bezpośrednio z twierdzenia Fermata1.58. Jeżeli jednak wylosujemy liczbę a względnie pierwszą z n, dla której a n 1 = 1 (mod n), to wtedy możemy popełnić błąd. Liczba n może być złożona, a mimo to wylosujemy pechowo i a n 1 = 1 (mod n). Przykład 1.60 W przykładzie 1.50 pokazano, że 8 5 = 8 (mod 21). Z tego wynika, że 8 10 = 8 2 = 1 (mod 21) oraz, że 8 20 = 1 (mod 21). Definicja 1.61 Taka liczbę a, dla której NW D(a, n) = 1 oraz a n 1 1 (mod n) będziemy nazywać świadkiem złożoności dla n, ponieważ zaświadcza ona, że n jest złożona. Przykład 1.62 Jak pokazano wyżej 8 nie jest świadkiem złożoności dla 21. W przykładzie 1.49 pokazaliśmy, że 2 20 = 4 (mod 21), czyli 2 jest świadkiem złożoności liczby 21. Zachodzi następujący lemat.

34 Rozdział 1. Teoria liczb (mod n), to przynajmniej poło- Lemat 1.63 Jeżeli istnieje takie a Z n, że an 1 1 wa elementów Z n jest świadkiem Fermata dla n. Dowód. Przypuśćmy, że {b 1,..., b k } są to wszystkie elementy Z n, dla których bn 1 i = 1 (mod n). Wtedy po pomnożeniu przez a otrzymamy k elementów {ab 1,..., ab k } różnych między sobą (lemat 1.35), z których każdy jest świadkiem Fermata. Rzeczywiście (ab i ) n 1 = a n 1 b n 1 i = a n 1 1 (mod n). A więc świadków złożoności jest co najmniej połowa. Jeżeli n jest pierwsze, to z Twierdzenia Fermata, algorytm zawsze orzeknie dobrze. Z lematu 1.63 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. Istnieją jednak liczby złożone n, które nie mają świadków złożoności. Na przykład n = 561. Kłopot bierze się stą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 NW D(a, 561) = 1, to a jest względnie pierwsze z 3, 11 i 17 oraz mamy a 560 = (a 2 ) 280 = 1 (mod 3) a 560 = (a 10 ) 56 = 1 (mod 11) a 560 = (a 16 ) 35 = 1 (mod 17) i z chińskiego twierdzenia o resztach wynika, że a 560 = 1 (mod 561) Takie liczby nazywają sie liczbami Carmichaela. Pierwsze trzy z nich to 561, 1105 i 1729. Występują one bardzo rzadko, jest ich tylko 255 wśród liczb mniejszych od 100 000 000. 1.21.3 Test Millera-Rabina Zakładamy, że n jest nieparzyste (2 jest jedyną parzystą liczbą pierwszą). Najpierw sprawdzamy, czy n jest potęgą jakiejś liczby naturalnej. Dla α od 2 do log 2 n sprawdzamy czy n = k α, dla jakiegoś k. W rozdziale o arytmetyce opisano jak za pomocą binary search stwierdzić, czy liczba jest potęgą innej liczby. Jeżeli n jest potęgą, to jest złożona. Ponieważ n jest nieparzyste, to n 1 możemy przedstawić w postaci n 1 = m 2 k.

1.21. Testy pierwszości 35 dla jakiegoś m nieparzystego. Losujemy a < n. Sprawdzamy, czy NW D(a, n) = 1 (jeżeli NW D(a, n) > 1, to n jest złożona). Następnie obliczamy a m mod n. Jeżeli a m mod n = 1, to koniec, stwierdzamy, że n jest pierwsza. Jeżeli a m mod n 1, to obliczamy po kolei a m2 mod n, a m22 mod n,..., a m2k mod n. Zauważmy, że w tym cią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 Jeżeli w tym ciągu jest jedynka, na przykład a m2k = a n 1 1 (mod n). a m2i = 1 (mod n) to patrzymy na poprzedni element x = a m2i 1. Jeżeli x 1, to orzekamy, że n jest liczbą złożoną. Znależliśmy nietrywialny pierwiastek z 1, a z twierdzenia 1.53 wynika, że jest to możliwe tylko wtedy gdy n nie jest pierwsze. Jeżeli x = 1, to orzekamy, że n jest pierwsze. Ł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ęgą liczby pierwszej, to z prawdopodobieństwem większym niż 1 2 wykryjemy to. Dowód tego faktu wybiega poza zakres tej książki i pomijamy go. Przykład 1.64 Prześledźmy algorytm Millera-Rabina dla n = 21 i a = 8. W przykładzie 1.50 pokazaliśmy, że n 1 = 20 = 5 2 2. 8 5 = 8 (mod 21). Teraz podnosimy 8 do kwadratu i otrzymujemy 8 5 2 = 8 2 = 1 (mod 21). W tym momencie algorytm znalazł nietrywialny pierwiastek 1 i orzeka, że 21 jest liczba złożona. W praktyce stosujemy wszystkie trzy testy na raz. Mając nieparzystą liczbę n, najpierw sprawdzamy, czy dzieli się ona przez kilka kolejnych liczb pierwszych p 1, p 2,..., p d. Dobór d zależy od tego jak duże liczby sprawdzamy. W ten sposób eliminujemy dużą część liczb. Zauważmy, że obliczając iloczyn tych liczb x = d i=1 p i

36 Rozdział 1. Teoria liczb i sprawdzając, czy NW D(x, n) = 1 możemy za jednym razem sprawdzić, czy n dzieli się przez którąś z tych liczb. Po przejściu pierwszego testu stosujemy test drugi, a gdy liczba n go przejdzie stosujemy test trzeci. Ponieważ liczby Carmichaela są dość rzadkie, więc drugi test wyeliminuje większość liczb złożonych. 1.21.4 Losowanie liczb pierwszych Jeżeli chcemy wyklosować liczbę pierwszą to losujemy nieparzystą liczbę, a mastępnie sprawdzamy, czy jest ona pierwsza. Jeżeli nie, to sprawdzamy następne liczby n + 2, n + 4,... 1.22 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ę y {0, 1, 2, 3, 4} taką, że x = y (mod 5). 3. Oblicz: a) (50 51 + 15) mod 7, b) 15 36 mod 7; c) 15 3 (37) 3 mod 7. 4. Oblicz: a) 26 4 18 + 2002) mod 5, 5. Oblicz: a) 10 39 mod 11, b) 2 39 mod 5 c) 7 40 mod 10. 6. Przedstaw klasy abstrakcji relacji kongruencji dla m = 6. 7. Jak wyglądają działania dodawania i mnożenia w pierścieniu Z 6 8. W pierścieniu Z 8 wykonaj działania 7 + 6 oraz 7 6. 9. W pierścieniu Z 8 rozwiąż równania: a) 1 + x = 0, b) 1 + x = 2, c) 5 + x = 0, d) 5 + x = 2. 10. Podaj tabliczkę dodawania i mnożenia w ciele Z 7. Podaj elementy odwrotne do 5 i 6 w Z 7. 11. Dla liczb a = 600 i b = 1050 oblicz NW D(a, b) oraz liczby całkowite x i y spełniające równanie xa + yb = NW D(a, b). 12. Oblicz N W D(667, 713). 13. Oblicz N W D(199816, 199819). 14. W pierścieniu Z 5 rozwiąż równania: a) 4 x = 1, b) 4 x = 2. 15. W pierścieniu Z 8 rozwiąż równania: a) 3 x = 1, b) 3 x = 2. 16. W pierścieniu Z 17 rozwiąż równania: a) 8x = 2, b) 9x = 4. 17. W pierścieniu Z 14 rozwiąż równania: a) 6x = 2, b) 6x = 9.