Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md06 -...
Transcript of Matematyka Dyskretna - Kolos Wikikolos.math.uni.lodz.pl/~archive/Matematyka dyskretna/Md06 -...
Matematyka Dyskretna
Andrzej Szepietowski
25 czerwca 2002 roku
Rozdział 1
Teoria liczb
1.1 Dzielenie całkowitoliczbowe
Zacznijmy od przypomnienia szkolnego algorytmu dzielenia liczb naturalnych. Podziel-my 1743 przez 12.
1 4 51 7 4 3 : 1 21 2
5 44 8
6 36 0
3
W wyniku dzielenia otrzymalismy iloraz 145 i reszte 3. Liczby te spełniaja równanie������������� ���������
i reszta jest mniejsza od dzielnika. Podobnie mozemy postapic dla dowolnych liczb natu-ralnych � i � pod warunkiem, ze ������ .Twierdzenie 1.1 Dla dowolnych liczb naturalnych � oraz ��� � istnieje dokładnie jednapara liczb naturalnych � i � spełniajacych warunki:
� � � ��� � �� �! �#"$�
� nazywa sie ilorazem całkowitoliczbowym � przez � , a � nazywa sie reszta z dzielenia
Zauwazmy, ze iloraz � jest zaokragleniem w dół normalnego ilorazu � �&% �(')�+* . Ilorazcałkowitoliczbowy liczb � i � bedziemy oznaczac przez
�-,.� /10(2 �4365178��93
4 Rozdział 1. Teoria liczb
a reszte przez�����63 ��9
Przykład 1.2�)� , �!� oraz
�)� ���63 �!� � , poniewaz��� ��-����.�
oraz� $� " � .
W przypadku, gdy � i � sa liczbami całkowitymi iloraz i róznice mozna róznie definiowac.Na przykład w jezyku Pascal iloraz dwóch liczb typu całkowitego oznacza sie przez
a div b
i jest to% �6')�+* — zaokraglenie ilorazu �6')� w dół, gdy �6')� jest dodatnie i
� �(')��� , —zaokraglenie ilorazu �(' � w góre, gdy �(')� jest ujemne. Reszta, która oznacza sie przez
a mod b,
jest okreslona wzorem:
a mod b = a-(a div b)*b.
Mamy wiec, 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 Podzielnosc liczb
Mówimy, ze liczba całkowita � �� �dzieli liczbe całkowita � , jezeli istnieje liczba całko-
wita � , taka ze:� � ��� 9
Bedziemy to oznaczac przez � � . Zauwazmy, ze zachodzi wtedy:
�����63 � � � 9Liczbe � nazywamy dzielnikiem liczby � .Przykład 1.3
� ,� ��� oraz
� � .Lemat 1.4 Jezeli � � oraz � � , to ��� � � ��� oraz ��� �������Dowód. Jezeli � � i � � , to istnieja dwie liczby całkowite � i � , takie ze:
� � ��� oraz � � ��� 9Mamy wiec:
� � � � ��� � ��� � ����� � ���oraz
����� � ����� ��� � �����������czyli � dzieli � � � oraz ����� . �
1.3. Relacja kongruencji 5
1.3 Relacja kongruencji
Niech � bedzie dowolna liczba naturalna � �� � . Powiemy, ze dwie liczby całkowite � i� sa równowazne (lub przystaja) modulo � , jezeli
���� � � � � 9Bedziemy wtedy pisac:
� � � � ���63 � ��9Przykład 1.5
� ��� � ���63 � � , ����� � ���63 � � , � � � � � ���63 � � , � � � � �� ���63 � � .
Jezeli � i � sa dodatnie, to � � � � ���63 ��� wtedy i tylko wtedy, gdy � i � maja takiesame reszty z dzielenia przez � .
Lemat 1.6 Relacja przystawania modulo jest relacja równowaznosci, czyli spełnia nastepujacetrzy warunki:
� zwrotnosc, dla kazdego � zachodzi � � � � ���63 ��� ,� symetrie, dla kazdego � i � , jezeli � � � � ���63 � � � to � � � � ���63 � � ,� przechodniosc, dla kazdego � , � i � ,
jezeli � � � � ���63 � � i � � � � ���63 � � � to � � � � ���63 ��� .Dowód. Udowodnimy tylko przechodniosc relacji. Jezeli � � � � � � oraz ���� � � ��� �to � � � � � ��� � � ������� � � czyli ���� � ����� . �Ponadto relacja modulo jest zgodna z dodawaniem, odejmowaniem i mnozeniem.
Twierdzenie 1.7 Jezeli � � � � ����3 ��� oraz � ��� � ����3 ��� � to:
� � � � � ��� � ���63 � � � � ��� � � � � � ����3 ��� � � � � � � � ���63 ��� 9Dowód. Z załozenia mamy:
� � � � � � ����� � �� � � � � �
z tego zas łatwo wynika, ze � dzieli:
� � � ��� � � � ��� � � � � ����� � � ��� � � oraz � � � � �!� ��� � � � � ��� � � � � � �czyli zachodzi teza twierdzenia. �
Przykład 1.8 Twierdzenie 1.7 moze byc uzyte do obliczania reszty z dzielenia Jezeli chce-my policzyc na przykład � ����� ���63 � �
6 Rozdział 1. Teoria liczb
to pytamy, która z trzech liczb � � � � � ��� przystaje do 1999 modulo 3. Zróbmy najpierwkilka prostych obserwacji. Po pierwsze:
��� ��� � ���63 � � �bo� �� ��� � � � . Z twierdzenia 1.7 wynika, ze kazda potega liczby dziesiec przystaje do 1
modulo 3, czyli: � ����� � � ����3 � �dla kazdego � . Mamy teraz:
� ����� � � ���)�8����� � ���������)���8�������4��� ��� ����� � � ���63 � � 9Podobnie, dla dowolnej liczby � , jezeli zapiszemy � w postaci dziesietnej:
� ��� ��� ��� � ��
to� ��� �� � ���63 � � �
czyli � ma takie same reszty modulo 3 co suma cyfr w zapisie dziesietnym.
Przykład 1.9 Aby przekonac sie, ze
� �)���8��� ����� �� �����(� �����
wystarczy zauwazyc, ze liczba� �����
jest parzysta, wiec takze wynik mnozenia powinienbyz parzysty. Mówiac inaczej
� �)��� � � � ���63 � � oraz� ����� � � � ���63 � � , wiec na
podstawie twierdzenia 1.7 mamy� ��������� ����� ��� � ���63 � � , a liczba
�����(� �����przystaje
do jedynki modulo 2. Podobnie mozemy sie przekonac, ze
� �)���8��� ����� �� �����(� ��� wystarczy zauwazyc, ze w iloczynie
� �)���#� � �����ostatnia cyfra powinno byc 8 a nie 6.
Inaczej� ����� � � � ���63 � � � oraz
� ����� � � � ����3 ��� � , wiec na podstawie twierdze-nia 1.7 mamy
� ����� � � �����.�� � ���63 ��� � , a liczba���)� � ��� przystaje do 6 modulo
10.
1.4 Klasy abstrakcji
Dla relacji przystawania modulo � definiujemy klasy abstrakcji. Dla dowolnej liczbycałkowitej � , klase abstrakcji elementu � definiujemy w nastepujacy sposób:
� �� � ��� �� � � � ����3 ��� � 9Innymi słowy, klasa abstrakcji liczby � to zbiór wszystkich liczb z nia równowaznych.
Przykład 1.10 Dla � ���mamy trzy klasy abstrakcji
1.5. Pierscien ��� 7
� � � � � � ����� � � ��9 99 � � � � � � � � � � � � � � � � 9 99 �� � � � � � � � ����� � � ��99 9 � � � � � � � � � � � � � � � � � 9 99 �� � � � � � ��� ����� � � ��99 9 � � � � � � � � � � � � � � �)� � 9 99 �
Zauwazmy, ze klasy abstrakcji elementów równowaznych pokrywaja sie.
Lemat 1.11 Jezeli � � � � ���63 � � � to� �� � � � .
Dowód. Jezeli��� � � �
to � � � � ���63 � � i z przechodniosci relacji � � � � ���63 � � , czyli:
��� � � �a wiec pokazalismy, ze: � �� � � � 9Identycznie pokazujemy zawieranie odwrotne
� � � � � . �Nastepna wazna własnosc klas abstrakcji to ich rozłacznosc.
Lemat 1.12 Jezeli� � � � � �� � � to
� � � � � ,inaczej, dwie klasy abstrakcji
� � i� � albo sa identyczne, albo sa rozłaczne.
Dowód. Przypuscmy, ze klasy� �� i
� � maja wspólny element � . Wtedy:
� � � � ���63 � � ����� � � � � ���63 � ��9Z przechodniosci mamy wtedy � � � � ���63 ��� , a z lematu 1.11
� � � � � . �
1.5 Pierscien � �Klasy abstrakcji relacji modulo � wygladaja nastepujaco:
� � � � � � 99 9 � � � � � 9Dla dowolnego � z przedziału
�# � � � � , klasa� � jest postaci:
� � � ��� � � � ������ �
( � oznacza zbiór liczb całkowitych). Zbiór klas abstrakcji modulo � oznacza sie przez��� .
Poniewaz relacja modulo jest zgodna z działaniami dodawania i mnozenia, mozemyzdefiniowac dodawanie i mnozenie na klasach abstrakcji. Mówiac w skrócie, aby wyko-nac 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 abs-trakcji definiujemy nastepujaco:
� � � � � � � � � �� 9Podobnie definiujemy odejmowanie i mnozenie:
� � �� � � � � � � �� � � �� � � � � � � � �� 9Ponizszy lemat pokazuje, ze działania te sa dobrze zdefiniowane; ze wynik działania nadwóch klasach nie zalezy od wyboru reprezentantów.
Lemat 1.13 Jezeli� �� � � � oraz
� � � � � � to:
� � � � � � � � � � � � � � � � � ����� � � � � � � � � � 9Dowód. Z załozenia mamy:
� � � � ���63 ��� ��� �� � � � � ���63 � ��9a z twierdzenia 1.7:
� � � � � � � � � � � � � � � � � � � oraz� � � � � � � 9
�Przykład 1.14 Niech � � �
. Dla dowolnych dwóch liczb � � � � i � � � � ich suma� � � nalezy do
� � � � � � � a iloczyn do� ���)� � � � .
Lemat 1.15 Działania na klasach abstrakcji
� � � � � � 9 99 � � � � � spełniaja nastepujace warunki:
� dodawanie oraz mnozenie sa przemienne i łaczne,
� klasa� � jest elementem neutralnym dodawania, to znaczy dla kazdego � mamy� � � � � � � � ,
� dla kazdej klasy� �� istnieje klasa do niej przeciwna
� �8�� , taka ze� �� � � �8�� � � � ,
� klasa� � jest elementem neutralnym mnozenia, to znaczy dla dowolnego
� �� mamy� � � � � � � � ,� mnozenie jest rozdzielne wzgledem dodawania, czyli dla kazdych trzech klas
� � ,� �� , � � mamy� �� � � � � � � � � � � � � � � � � � .
Zbiór z dwoma działaniami spełniajacymi powyzsze warunki nazywa sie pierscieniemprzemiennym z jedynka.
1.5. Pierscien ��� 9
Dowód: Udowodnimy tylko rozdzielnosc:
� �� � � � � � � � � � � � � � � � � � � � � � � � � ��� � � � � � ��� � � � � � � � � � � � � � � 9Skorzystalismy w tym dowodzie z rozdzielnosci mnozenia wzgledem dodawania dla liczbcałkowitych. �Przykład 1.16 Rozwazmy zbiór reszt modulo 5. Składa sie on z pieciu klas:
� � � � � � � � � � � � � � �dla prostoty bedziemy dalej opuszczac nawiasy. Mamy wiec zbiór:
��� � � � � � � � � � � ���
z dodawaniem i mnozeniem okreslonym nastepujacymi tabelami:
+ 0 1 2 3 40 0 1 2 3 41 1 2 3 4 02 2 3 4 0 13 3 4 0 1 24 4 0 1 2 3
�0 1 2 3 4
0 0 0 0 0 01 0 1 2 3 42 0 2 4 1 33 0 3 1 4 24 0 4 3 2 1
Zauwazmy, ze kazdy element oprócz zera ma w � � element odwrotny wzgledem mnozenia,czyli dla kazdego � ��� � � � � � istnieje ��� � � taki ze ����� � ���
:
��� ���
���� ���
���� � �
���� � � 9
Dlatego � � jest ciałem, czyli pierscieniem przemiennym z jedynka i z odwrotnoscia wzgledemmnozenia.
Przykład 1.17 Rozwazmy teraz pierscien reszt modulo 4:
��� � � � � � � � � � � �gdzie dodawanie i mnozenie jest okreslone nastepujacymi tabelami:
+ 0 1 2 30 0 1 2 31 1 2 3 02 2 3 0 13 3 0 1 2
�0 1 2 3
0 0 0 0 01 0 1 2 32 0 2 0 23 0 3 2 1
� � nie jest ciałem, poniewaz nie ma w nim elementu odwrotnego do 2. Ponadto w � �mamy: �-��� ���
�
czyli zero mozna przedstawic jako iloczyn dwóch liczb róznych od zera.
10 Rozdział 1. Teoria liczb
Łatwo zauwazyc, ze jezeli liczba � jest złozona, � ��� � dla� " � � � " � , to w
pierscieniu ��� mamy� � � � i ani
�, ani � nie maja elementów odwrotnych. Przypuscmy
bowiem, ze istnieje���. Mamy wtedy:
������� �����
�� � � � � � � � � � � � � � � � � � �
czyli � � �, sprzecznosc. Tak wiec � � nie jest ciałem, jezeli � jest liczba złozona.
W dalszej czesci tego rozdziału zobaczymy, ze jezeli � jest liczba pierwsza, to � � jestciałem.
1.6 Najwiekszy wspólny dzielnik
Dla dwóch liczb całkowitych � i � , ich najwiekszy wspólny dzielnik to po prostu najwiekszaliczba całkowita
�
, która dzieli � i � . Najwiekszy wspólny dzielnik liczb � i � bedziemyoznaczac przez ����� � � � � � . Na przykład: ����� � � � �� ��� , ����� � � � � � � � .
1.7 Algorytm Euklidesa
Najwiekszy wspólny dzielnik dwóch liczb dodatnich mozna obliczyc za pomoca algoryt-mu Euklidesa.
Algorytm Euklidesa. Aby obliczyc najwiekszy wspólny dzielnik dwóch dodatnich liczbnaturalnych � , � , powtarzamy az do skutku:
� jezeli � � � , to koniec, ����� � � � � � � � ,
� jezeli � � � , to � � ��� � ,� jezeli � " � , to �� � � � � .
Powyzszy algorytm odejmuje od wiekszej liczby mniejsza tak długo, az liczby beda rów-ne. Wtedy wynikiem działania algorytmu jest wspólna wartosc tych liczb. W uproszczo-nej wersji jezyka Pascal algorytm Euklidesa mozna zapisac w nastepujacy sposób:
p:=a;q:=b;while p<>q do
if p>q then p:=p-qelse q:=q-p;
NWD(a,b):=p
W ponizszej tabeli pokazano kolejne kroki działania algorytmu Euklidesa na parzeliczb 36 i 15:
1.7. Algorytm Euklidesa 11
� �36 1521 156 156 96 33 3
Tak wiec 3 jest najwiekszym wspólnym dzielnikiem liczb 15 i 36.Poprawnosc algorytmu Euklidesa wynika z ponizszego lematu.
Lemat 1.18 Niech�
i � beda dwoma liczbami naturalnymi i niech� " � " � . Wtedy
para�� � ma taki sam zbiór wspólnych dzielników jak para
� � � , � .Dowód. Jezeli liczba � jest wspólnym dzielnikiem pary
�� � , to � dzieli takze
� � � , czyli� jest wspólnym dzielnikiem pary � � � � � , � .
Na odwrót, jezeli liczba � jest wspólnym dzielnikiem pary � � � � � , � , to � dzieli takze� � � � � � � � � , czyli � jest wspólnym dzielnikiem pary
�� � . �
Tak wiec po kazdej iteracji petli while para�� � ma taki sam zbiór wspólnych dziel-
ników, a wiec takze taki sam najwiekszy wspólny dzielnik. Na koncu, gdy� � � , wów-
czas oczywiscie � ��� � � � � � � � .Nalezy jeszcze pokazac, ze dla kazdej pary dodatnich liczb naturalnych � i � algorytm
zatrzyma sie. Ale to wynika z faktu, ze po kazdej iteracji petli while liczba
� � � � � � � �jest coraz mniejsza, a poniewaz jest to zawsze liczba naturalna dodatnia, wiec nie mozezmniejszac sie w nieskonczonosc. Zauwazmy przy okazji, ze jezeli jedna z dwóch liczb,� lub � , jest zerem, to algorytm nie zatrzyma sie.
Twierdzenie 1.19 Niech � i � beda dwoma dodatnimi liczbami naturalnymi i niech� �
����� � � � � � . Wtedy istnieja liczby całkowite � i � , takie ze:
� � � �(� � ��
lub mówiac inaczej,�
jest kombinacja całkowitoliczbowa liczb � i � .Dowód. Pokazmy, ze wszystkie wartosci, jakie przyjmuja zmienne
�i � w trakcie wy-
konywania algorytmu Euklidesa, sa całkowitoliczbowymi kombinacjami liczb � i � . Napoczatku, gdy
� � � i � � � , mamy:� � � � ��� � � � ��� � ��� ��9
Załózmy teraz, ze po�-tej iteracji petli
� �$� oraz ze zachodzi:� � ���)� � ��� � � � � ����� � ������9
Wtedy w � � � � � iteracji�
bedzie pomniejszone o � i bedziemy mieli:� � � ��� � ��� � � � � ��� � ���� � � � � ��� � � �����9
Z tego wynika, ze takze ostateczna wartosc zmiennej�
(która jest równa�) jest całkowitoliczbowa
kombinacja liczb � i � . �
12 Rozdział 1. Teoria liczb
Algorytm Euklidesa mozna tak zmodyfikowac, aby oprócz najwiekszego wspólnegodzielnika ����� � � � � � , wyliczał takze liczby � i � , takie ze:
� � � �(� � ����� � � � � ��9Oto ten algorytm w jezyku Pascal:
p:=a;q:=b;xp:=1;yp:=0;xq:=0;yq:=1;while p<>q do
if p>q thenbegin
p:=p-q;xp:=xp-xq;yp:=yp-yq
endelse
beginq:=q-p;xq:=xq-xp;yq:=yq-yp
end;NWD(a,b):=p;x:=xp,y:=yp
W ponizszej tabeli pokazano kolejne kroki działania rozszerzonego algorytmu Eukli-desa na parze liczb 36 i 15:
� � � � � � � � �6�36 15 1 0 0 121 15 1 -1 0 1
6 15 1 -2 0 16 9 1 -2 -1 36 3 1 -2 -2 53 3 3 -7 -2 5
Tak wiec liczbe 3 mozna przedstawic jako kombinacje liczb 15 i 36 w nastepujacy sposób:� � ��� � � � � � � �)�� 9
Zauwazmy, ze jezeli jakas liczba � dzieli liczby � i � , to dzieli takze kazda ich kombinacjecałkowita
� � � �(� �a wiec dzieli takze najwiekszy wspólny dzielnik ����� � � � � � . Udowodnilismy ponizszylemat.
1.8. Liczby pierwsze i wzglednie pierwsze 13
Lemat 1.20 ����� � � � � � jest podzielny przez kazdy wspólny dzielnik liczb � i � .Z lematu 1.20 wynika, ze najwiekszy wspólny dzielnik ����� � � � � � moze byc rów-
nowaznie zdefiniowany jako taki wspólny dzielnik liczb � i � , który jest podzielny przezkazdy wspólny dzielnik � i � .Lemat 1.21 Liczba
�jest najwiekszym wspólnym dzielnikiem liczb � i � wtedy i tylko
wtedy gdy�
bedzie wspólnym dzielnikiem � i � oraz istnieja liczby całkowite � i � , takieze�!� � � � �(� .
Dowód Jezeli � ��� � � � ��� ���to� � ,
� � oraz (z twierdzenia 1.19) istnieja liczby całko-wite � i � , takie ze:
�!� � � � �(� .Na odwrót, jezeli
�dzieli � i � oraz � � � �(� � �
, to kazdy wspólny dzielnik � i �dzieli
�, a wiec
�jest najwiekszym wspólnym dzielnikiem � i � . �
Wniosek 1.22 Jezeli istnieja liczby całkowite � i � , takie, ze � � � �(� ���, to � ��� � � � ��� ��
.
Przykład 1.23 Zastanówmy sie, ile wynosi ����� � � ��� � � ���)� � . Poniewaz:� �)��� � � ��� � �
oraz 2 jest wspólnym dzielnikiem 1998 i 2000, wiec ����� � � ��� � � ���)� � ��� .Zastanówmy sie teraz, ile wynosi � ��� � � ����� � �)�)�(� � . Poniewaz:
�)�)� � � � ����� ��� �wiec ����� � � ����� � �)�)� � � dzieli 2, a poniewaz 2 nie dzieli ani 1999, ani 2001, wiec����� � � ����� � � ���(� � ���
.
1.8 Liczby pierwsze i wzglednie pierwsze
Dwie liczby naturalne � i � sa wzglednie pierwsze, jezeli ����� � � � � � � �, a liczba
naturalna�
jest pierwsza, jezeli� � �
i jedynymi dzielnikami naturalnymi�
sa jedynka isamo
�.
Oto wszystkie liczby pierwsze mniejsze od 50:��������)��� ������� ���)������� �������(���)����� 9
Liczba� � �
, która nie jest pierwsza jest złozona. Istnieja wtedy dwie liczby � , � " �
,takie, ze
� � � � � .
1.9 Rozkład liczb na czynniki pierwsze
W tym rozdziale zobaczymy, ze kazda liczbe naturalna� � �
mozna rozłozyc na czynnikipierwsze i ze taki rozkład jest jednoznaczny z dokładnoscia do kolejnosci czynników. Naprzykład: ��� � ��� � �
i��)� � ��� ���� �� 9
14 Rozdział 1. Teoria liczb
Twierdzenie 1.24 Kazda liczbe naturalna� � �
mozna przedstawic jako iloczyn liczbpierwszych (niekoniecznie róznych):
� � � � � � � �� ��� 9Dowód nie wprost. Przypuscmy, ze istnieje liczba naturalna
�
, której nie mozna przed-stawic jako iloczynu liczb pierwszych i ze
�
jest najmniejsza taka liczba.�
nie moze bycliczba pierwsza (bo wtedy
� � � � ), wiec�
jest liczba złozona, czyli jest postaci:� � � �
dla � � � " �
. Ale poniewaz � i � sa mniejsze od�
, wiec mozna je rozłozyc na czynnikipierwsze
� ��� � � � �� � � � ����� � � � � � � ��� ��� �ale wtedy, wbrew załozeniu, mamy rozkład liczby
�
na czynniki pierwsze:� � � � � � �� � � � � � � � � �� ��� 9
�Aby pokazac, ze rozkład jest jednoznaczny (z dokładnoscia do kolejnosci czynników),
musimy najpierw udowodnic dwa lematy.
Lemat 1.25 Niech � i � beda dodatnimi wzglednie pierwszymi liczbami naturalnymi.Wtedy dla dowolnej liczby � , jezeli � � � , to �� � .Dowód. Z twierdzenia 1.19, istnieja dwie liczby całkowite � i � , takie ze:
� � � �6� ��� 9Pomnózmy teraz obie strony tego równania przez � :
� � � � �(� � � � �i zauwazmy, ze � dzieli oba składniki po lewej stronie równania, a wiec dzieli prawastrone, czyli � . �Lemat 1.26 Jezeli liczba pierwsza
�dzieli iloczyn liczb pierwszych
� � � � ��� ���(niekoniecznie róznych), to wtedy
�jest równe jednej z liczb � � .
Dowód przez indukcje ze wzgledu na � . Dla � � �mamy
� � � , a poniewaz � � jestpierwsza i
� � �, wiec
� � � � .Załózmy teraz, ze teza zachodzi dla � i przypuscmy, ze
�dzieli
� � � � ��� �������� � 9Mamy dwa przypadki: albo
�dzieli ����� � , albo nie. W pierwszym przypadku
� � ����� � .W drugim przypadku mamy ����� � � � ����� � � � �
, bo 1 i ����� � to jedyne dzielniki liczby� ��� � . Z lematu 1.25 wynika teraz, ze
�dzieli � � � � � �� � � � a z załozenia indukcyjnego, ze� � � � dla jakiegos
� �4 � . � .
1.10. Elementy odwracalne 15
Udowodnimy teraz, ze rozkład liczby na czynniki pierwsze jest jednoznaczny, z dokładnosciado kolejnosci czynników.
Twierdzenie 1.27 Kazda liczbe naturalna� � �
mozna w dokładnie jeden sposób przed-stawic w postaci iloczynu:
� � ������������ 9 99 � ���� �
gdzie � sa dodatnimi liczbami naturalnymi,� �
sa liczbami pierwszymi oraz zachodzi� � " � � " 99 9(" � � .Dowód. Twierdzenie 1.24 orzeka, ze liczba ma rozkład na czynniki pierwsze. Trzebapokazac, ze jest to rozkład jednoznaczny.
� � �jako liczba pierwsza ma jednoznaczny
rozkład. Przypuscmy, ze�
jest najmniejsza liczba z dwoma róznymi rozkładami:� ����� �
���� �� 999 � � �� � � �� � �� 99 9 � ��� 9 (1.1)
Wtedy z jednej strony� � nie moze wystepowac po prawej stronie równania (1.1), bo
� ' � �byłoby mniejsza liczba z niejednoznacznym rozkładem. Z drugiej strony
� � dzieli prawastrone, a wiec, z lematu 1.26 wystepuje po prawej stronie. Mamy wiec sprzecznosc. �Lemat 1.28 Jezeli � i � sa wzglednie pierwsze, to ich rozkłady sa rozłaczne, to znaczymaja rozłaczny zbiór liczb pierwszych wystepujacych w ich rozkładach.
1.10 Elementy odwracalne
Definicja 1.29 Element � ��� � jest odwracalny, jezeli istnieje � � � � , takie, ze
� � � ��� � ���63 � ��9� nazywamy elementem odwrotnym do � i oznaczamy przez � � � .Przykład 1.30
�jest odwracalna w �� bo
� � � � � � ����3 � . Oprócz 3 w �� odwra-calne sa takze
�,
i�.
Lemat 1.31 Liczba � ��� � jest odwracalna wtedy i tylko wtedy, gdy ����� � � � ��� � �.
Dowód. Jezeli � ��� � � � ��� � �, to istnieja liczby całkowite � i � , takie ze:
� � � � � � ��
a wiec � dzieli �� � � , czyli:
�� � � � ���63 ��� 9Teraz wystarczy przyjac za � � � taka liczbe z przedziału od 1 do � � �
, która przystajedo � modulo � .
Z drugiej strony jezeli istnieje element � � � odwrotny do � to
� � � � ��� � ���63 � �
16 Rozdział 1. Teoria liczb
czyli� � � ��� ��� � � �
dla jakiegos � . Mamy wiec� � � � � � � � � � ���
czyli ����� � � � � � � �(wniosek 1.22). �
Z powyzszego dowodu wynika, ze element odwrotny do � mozna wyliczyc stosujacalgorytm Euklidesa. Na przykład policzmy element odwrotny do 12 w pierscieniu � ��� .Najpierw zastosujemy algorytm Euklidesa, aby obliczyc � i � , takie ze:
��� � ����� � ��� 9Kolejne kroki algorytmu przedstawiono w tabeli:
� � � � � � � � �6�17 12 1 0 0 1
5 12 1 -1 0 15 7 1 -1 -1 25 2 1 -1 -2 33 2 3 -4 -2 31 2 5 -7 -2 3
Mamy wiec: -�)����� � � � � ��� � ��
czyli:� � � � ��� � � � ���63 ��� � �
ale:� ������� � ����3 � � � �
czyli 10 jest elementem odwrotnym do 12 w pierscieniu � ��� .Definicja 1.32 Zbiór elementów odwracalnych w ��� oznaczamy przez � �� .Przykład 1.33 � � � � � � � � � ��� .Lemat 1.34 Jezeli liczba � jest pierwsza, to kazdy element ��� � � , � �� �
, jest odwra-calny, czyli pierscien � � jest ciałem.
Lemat 1.35 Jezeli � � � � � �� to ��� ��� �� oraz � � � ��� �� .To oznacza, ze � �� z mnozeniem jest grupa.
Dowód: Elementem odwrotnym do iloczynu �6� jest � � � � � � , a elementem odrotnym do� � � jest � . �
1.11. Funkcja liniowa 17
1.11 Funkcja liniowa
Zastanówmy sie jak w pierscieniu ��� działa funkcja liniowa� � ��� � � � � � ���63 ��� 9
Rozpatrzmy najpierw przypadek, gdy � i � sa wzglednie pierwsze, czyli gdy ����� � � � ��� ��. Dla � �
i � ��� wartosci funkcji przedstawia tabela
x 0 1 2 3 4 5 6 73x 0 3 6 1 4 7 2 5
W takim przypadku istnieje � � � element odwrotny do � i funkcja ��� � � � � � � � , którajest odwrotna do
�. Rzeczywiscie
� ���� ��� � � ��� � � � � � 9Z tego wynika, ze
�jest wzajemnie jednoznaczna i "na" oraz, ze dla kazdego ��� � �
równanie��� � �
ma dokładnie jedno rozwiazanie w pierscieniu � � , jest ono równe � � � � � � .Funkcja
�jest permutacja w � � i wykorzystuje sie ja, gdy trzeba wymieszac (prze-
permutowac) elementy � � . Zauwazmy, ze�
jest takze permutacja w � �� . Rzeczywiscie,jezeli � ��� �� , to na podstawie lematu 1.35
� � ��� � �� ��� �� . Mamy wiec
Lemat 1.36 Jezeli ����� � � � � � � �, to funkcja
� � ��� � �� jest funkcja wzajemniejednoznaczna w � � i w � �� .
Rozpatrzmy teraz przypadek, gdy � i � nie sa wzglednie pierwsze, czyli gdy � ��� � � � ��� �� � �
. Dla � � i � � wartosci funkcji przedstawia tabela
x 0 1 2 3 4 5 6 76x 0 6 4 2 0 6 4 2
Zauwazmy, ze jezeli � jest wartoscia funkcji�
, czyli gdy
�� � � � ���63 � �to istnieje takie � , ze
�� � � � � � �a poniewaz
�dzieli � i � , to
�dzieli � , a wiec wartosciami funkcji
�moga byc tylko
liczby podzielne przez�.
Lemat 1.37 Jezeli � ��� � � � ��� � �oraz
� � , to równania
�� � � � ���63 � �oraz
� �(' � � � � � �' � � � ���63 � ' � �sa równowazne, czyli maja ten sam zbiór rozwiazan w zbiorze liczb całkowitych.
18 Rozdział 1. Teoria liczb
Dowód�� � � � ����3 ���
wtedy i tylko wtedy, gdy istnieje � takie ze
�� � � � � � �a to zachodzi wtedy i tylko wtedy, gdy istnieje � takie, ze
� �(' � � � � � �' � � � �� � ' � � �czyli wtedy i tylko wtedy, gdy
� �(' � � � � � � ' � � � ���63 � ' � � 9�
Przypuscmy teraz, ze�
dzieli � i rozwiazmy równanie
�� � � (1.2)
w pierscieniu � � , czyli szukamy takich � � � � � 99 9 � � � � � , ze
�� � � � ����3 ��� (1.3)
Z lematu 1.37, to równanie jest równowazne równaniu
� �(' � � � � � �' � � � ���63 � ' � � (1.4)
Ale teraz ����� � �(' � � � ' � � � �i równanie (1.4) ma dokładnie jedno rozwiazanie ��� �
� � � 99 9 � � ' � � � � takie ze
� �(' � � ��� � � �' � � � ����3 � ' � � 9Ale równania (1.4) i (1.3) sa spełnione takze przez liczby
� � � � � � � ' � � � � �.� � ' � � 99 9 � � � � � � � � � � ' � 9Sa to wszystkie liczby ze zbioru � � � 9 99 � � � � � spełniajace równania (1.4) i (1.3), czyliwszystkie rozwiazania równania (1.2) w pierscieniu � � .
Przykład 1.38 Rozwiazmy równanie
� � � � ���63 �� ��9 (1.5)
Poniewaz � ��� � � �� � � � , wiec najpierw rozwiazujemy równanie
� � � � � ���63 �W ��� mamy
��� � �
wiec rozwiazaniem jest � � � ��� � � �. Tak wiec rozwiazaniami
równaia (1.5) w � � � sa liczby ����� � 9
1.12. Szyfry liniowe 19
1.12 Szyfry liniowe
Przypuscmy, ze mamy tekst zapisany za pomoca 26 liter alfabetu łacinskiego:
� � � � � � � ��� � � � � � � � � � � � � ��� � � � �
��� � � � � � � ������� � �
� � �
� � � � � � �i chcemy ten tekst zaszyfrowac. W tym celu utozsamiamy zbiór liter z elementami pier-scienia � ��� :
� ��� � � � �� � ��� � 9 99 � � � �� �
wybieramy dwie liczby � � ��� � ��� , takie ze ����� � � � � � � �, i szyfrujemy litera po
literze według wzoru: �� � � � �� � � � ����3 � � 9
Funkcja deszyfrujaca jest okreslona wzorem:
� � � � � � � � � � � � � � � ���63 � ��9Rzeczywiscie:
� ��� � � � � � � � � �� � � � � � � � � � � � � �� � � � � ��� � � � � � � 9
Z tego wynika, ze funkcja szyfrujaca�� � � jest wzajemnie jednoznaczna.
Przykład 1.39 Wybierzmy � � � �i � � �)� i zaszyfrujmy słowo
� � � � � � � � �6� 9W tym celu musimy zaszyfrowac 6 liter: � , � , � , � , � oraz � . Obliczenia przedstawiono wtabeli:
litera ��� � � szyfr
m 12 10 ka 0 20 ut 19 15 pe 4 8 iy 24 0 ak 10 16 q
Słowo � � � � � � � � �6� po zaszyfrowaniu wyglada tak:
� � � � � � � ��� � 9Jezeli zas zastosujemy ten sam szyfr do poczatkowego zdania z wiersza Lokomotywa Ju-liana Tuwima:
stoi na stacji lokomotywa,
to otrzymamy:
spewhuspuotwneqekepagu.
20 Rozdział 1. Teoria liczb
A oto program w jezyku Pascal, który szyfruje teksty zapisane za pomoca 26 liter alfabetułacinskiego:
vart:string;a,b,i,m:integer;begin
writeln(’podaj klucz’);write(’a=’);readln(a);write(’b=’);readln(b);writeln(’podaj tekst do zaszyfrowania’);readln(t);for i:=1 to length(t) do
beginm:=((ord(t[i])-97)*a+b)mod(26)+97;write(chr(m))
endend.
Komentarz. Zmiennat jest typu string, czyli łancuch. Taka zmienna mozna traktowacjak tablice z indeksami od 1 do length(t) i z wartosciami typu char (znak). Zmiennetypu char sa przechowywane w jednym bajcie i moga zawierac jeden znak. Liste znakówwraz z odpowiadajacymi im numerami (od 0 do 255) zawiera tak zwany kod ASCII. Małelitery alfabetu łacinskiego maja tam numery od 97 — a, do 122 — z.
Instrukcja
readln(t)
czyta z klawiatury tekst do zaszyfrowania i zapisuje go do zmiennej t. Elementy tablicyt[i], dla i od 1 do length(t), zawieraja poszczególne znaki naszego tekstu.
Funkcja ord przypisuje znakom ich numery w kodzie ASCII, a funkcja chr działana odwrót, przypisuje znak numerowi. Petla for, dla kazdego znaku tekstu t po kolei,wylicza numer tego znaku po zakodowaniu:
m:=((ord(t[i])-97)*a+b)mod(26)+97,
a nastepnie drukuje zakodowany znak na ekranie:
write(chr(m)).
Klucz do kodowania przechowywany jest w postaci dwóch liczb, a i b, typu integer.
Szyfry liniowe sa bardzo starym wynalazkiem. W prostszej wersji z � � �sto-
sował je juz Juliusz Cezar. Ich wada jest to, ze bardzo łatwo daja sie łamac. Czasamiwystarcza odgadnac, jak zaszyfrowano dwie litery. Mozna to zrobic analizujac czestosciwystepowania liter w zaszyfrowanym tekscie.
Przykład 1.40 (kontynuacja przykładu 1.39) W naszym drugim zaszyfrowanym tekscielitera � wystepuje cztery razy, a litery
�i
�
po trzy razy. Moze to nam pomóc w odgadnieciu,
1.13. Chinskie twierdzenie o resztach 21
ze litera � koduje litere � , a litera�
koduje litere � . Mamy wiec dwa równania:
�� � � � � � � � ���63 � � ���� � � � � � � ���63 � ��9Po odjeciu tych równan stronami mamy:
��� �� � � ���63 � ��9Korzystajac z algorytmu Euklidesa, mozemy teraz wyliczyc element odwrotny do 5 w pier-scieniu � ��� . Jest to 21, poniewaz:
� � � ��.� ���oraz � ���(� � ���63 � � �
tak wiec:� � �(� ���)� � � �(�8� � � � ���63 � ��9
Teraz z drugiego równania mozemy wyliczyc � :� � �� � � �-��� � � � � � ���63 � ��9
1.13 Chinskie twierdzenie o resztach
W starozytnych Chinach generałowie uzywali pewnego ciekawego sposobu liczenia swo-ich zołnierzy. Dla kilku niewielkich liczb parami wzglednie pierwszych, na przykład dla:
� � ��� � � ��
� ��� � ��
obliczano i zapamietywano reszty z dzielenia liczby zołnierzy przez te liczby. W celuobliczenia reszt kazano zołnierzom ustawic sie trójkami, piatkami i siódemkami. Jezeliprzy nastepnym apelu wszystkie trzy reszty były takie same, to znaczyło, ze nie brakujezadnego zołnierza.
Zobaczmy, jak ten sposób działa. Wezmy najpierw dwie liczby:
� � ��� � �� � 9
W ponizszej tabeli mamy zestawione reszty modulo 2 i 3 liczb od 0 do 5:
a � � ���63 � � � � ����3 � �0 0 01 1 12 0 23 1 04 0 15 1 2
22 Rozdział 1. Teoria liczb
Kazda z liczb od 0 do.� � ��� � �
ma inny zestaw reszt oraz dla kazdej pary reszt� � � � � � � , spełniajacych warunek
� � � " � , � � � " � , istnieje liczba � , taka ze:
� � � � � ���63 � � �� � � � � ���63 � ��9
Oczywiscie 6 ma takie same reszty jak 0:� � � ���63 � � � ��� � ���63 � � �
i ogólnie, jezeli dwie liczby � i � róznia sie o wielokrotnosc liczby � �-� � , czyli:
� � � � � � dla jakiegos całkowitego � , to
� � ���63 � � � � � ���63 � � �� � ���63 � � � � � ���63 � ��9
Z tego widac, ze sposób chinskich generałów, z liczbami 2 i 3, liczy zołnierzy z dokładnosciado pieciu.
Sytuacja jest inna, jezeli � � i � � nie sa wzglednie pierwsze. Jezeli, na przykład,� � � �
i � �� , to wsród liczb od 0 do
�)� ��� � � � istnieja takie, które maja takiesame reszty, na przykład 1 i 13:
� � ���63 � � � ��� � ����3 � � � ��� � ���63 �� � ��� � ����3 �� � � 9
Ponadto nie istnieje taka liczba � , dla której:��� � � ���63 � � � ��� � � ���63 �� 9
Rzeczywiscie, z pierwszej równosci wynika, ze � powinno byc nieparzyste, a z drugiej,ze parzyste.
Jezeli jednak � � i � � sa wzglednie pierwsze, to kazda z liczb od 0 do � � � � � � � mainny zestaw reszt oraz dla kazdej pary reszt � � � � � � � , spełniajacych warunek
� � � "� � , �# � � " � � , istnieje liczba � , taka ze:
� � � � � ���63 � � � �� � � � � ���63 � � � �
zachodzi bowiem ponizsze twierdzenie.
Twierdzenie 1.41 (chinskie twierdzenie o resztach) Niech
� � � � �� 999 � � �
beda dodatnimi liczbami wzglednie pierwszymi, to znaczy dla kazdej pary�� � " � �
mamy ����� � � � � ��� � ���, oraz niech
� � � � � � 999 � � �
1.13. Chinskie twierdzenie o resztach 23
beda dowolnymi resztami. Wtedy istnieje liczba całkowita � , taka ze:
� � � � � ���63 � � � �� � � � � ���63 � � � � (1.6)
9 99� � � � � ����3 � � ��9
Ponadto jezeli liczby � i � sa rozwiazaniami układu kongruencji (1.6), to ich róznica��� � dzieli sie przez iloczyn wszystkich liczb � � , czyli przez:
� � ����� � �
� 9
Dowód. Najpierw udowodnimy druga czesc twierdzenia. Dla kazdego� � � mamy:
� � � � � ���63 � � � ����� � � � � � ����3 � � ��9Po odjeciu stronami tych dwóch równan mamy:
� � ��� � � ����3 � � � �czyli
� � �� � � � � �wiec kazda sposród liczb � � dzieli � �!� , a skoro liczby � � 99 9 � � sa wzglednie pierwsze,wiec takze ich iloczyn
�dzieli � ��� . Rzeczywiscie, przypuscmy bowiem, ze
�ma
rozkład � ����� ����������� � � �
� 9Wezmy teraz dowolne
� ���� . Poniewaz rozkłady liczb � � � 99 9 � � � sa rozłaczne, wiec� ����
wystepuje w rozkładzie jakiegos � � , czyli dzieli � � oraz � � � , a wiec w rozkładzieliczby � � � , liczba
� �wystepuje z wykładnikiem �� � . Dlatego
�dzieli � � � .
Zobaczymy teraz, ze układ (1.6) ma rozwiazanie. Niech� � � � '�� � , czyli:
� � � � � �� � � ��� � � � � 999 � � 9
Poniewaz� �
i � � maja rozłaczne rozkłady, wiec ����� � � � � � � � � �oraz istnieje � � ,
takie ze: � � � � ��� � ���63 � � ��9Wezmy teraz:
� ��� ��� � �
� � � � � 9Zauwazmy, ze jezeli
� �� � , to � � � � , oraz:
� � � � � � � � � ���63 � � � �co daje:
� � � � � � � � � � � � ����3 � � �dla kazdego
�, a wiec � jest rozwiazaniem układu równan (1.6). �
24 Rozdział 1. Teoria liczb
Przykład 1.42 Kazda z liczb od 0 do� � �!� �������� � � ma inny zestaw reszt wzgledem
liczb 3, 5 i 7. Tak wiec stosujac sposób chinskich generałów z liczbami 3, 5, 7 mozemyliczyc zołnierzy z dokładnoscia do 104.
Ale sposób chinskich generałów pozwala takze stwierdzic, o ile zmieniła sie liczbazołnierzy. Przypuscmy bowiem, ze na porannym apelu było � zołnierzy i uzyskano reszty:
� � � � � ���63 � � � � � � � � ���63 � � � � � � � ���63 � � �a na apelu wieczornym było � zołnierzy i otrzymano reszty:
� � � � � ���63 � � � � � � � � ���63 � � � � � � � ���63 � � �wtedy róznica � � � spełnia nastepujacy układ kongruencji:
� � � � � � � � � � ���63 � � �� � � � � � � � � � ���63 � �� � � � � � � � � � ���63 � � 9
Jak widac, chinskie twierdzenie o resztach pozwala wnioskowac o duzych liczbach zapomoca operacji na małych liczbach. Zobaczmy teraz inne zastosowanie tego twierdzenia.
Przykład 1.43 Zastanówmy sie, ile wynosi reszta z dzielenia liczby
� ��� ����� � ��� � � �
przez 15. Łatwo mozna policzyc, ze:� � � � ���63 � oraz
� � � � ���63 � � , a wiec:
� � � � ���63 �� � �poniewaz 4 jest jedyna liczba z przedziału
������ 9 99 � �� , która posiada reszty
��� �� ���63 � � oraz
� ��� � ���63 � .
1.14 Pierwiastki kwadratowe
Definicja 1.44 Liczbe � nazywamy pierwiastkiem kwadratowym liczby � w pierscieniu��� , jezeli
� � � � � ����3 ��� 9Przykład 1.45 W � � pierwiastkami 4 sa 2 i 3, a liczba 2 nie posiada pierwiastka.
Zauwazmy, ze jezeli � � � � � ���63 � � to
� � � � � � � � � � � � � � � � � � � � � � ���63 ��� �czyli � � � � � � � ���63 � � , tez jest pierwiastkiem � .
Lemat 1.46 Jezeli � jest liczba pierwsza i � � � � , to � i � � sa jedynymi pierwiastkamiz � .
1.15. Funkcja Eulera 25
Dowód Jezeli � � � � � � ����3 ��� , to � dzieli � � � � � � � � � � ��� � � � � , a poniewaz �jest pierwsze to � dzieli � � � lub � � � . W pierwszym przypadku � � � � ���63 � � , wdrugim � � � � � ���63 ��� . �
Przykład 1.47 Tak nie musi byc, jezeli � nie jest liczba pierwsza. Na przykład w � � �mamy cztery pierwiastki z
�, sa to
�,�,���
i��
.
Ogólnie rozwazmy liczbe � która jest iloczynem dwóch róznych liczb pierwszych� �.�#� � . Wezmy teraz dowolna liczbe � , dla której
� ���63 � � �lub � ���63 � � � �
oraz� ����3 � � �
lub � ���63 � � � �Wtedy
� � ���63 � � �oraz � � ���63 � � �
czyli z chinskiego twierdzenia o resztach wynika, ze
� � ��� � ���63 � � ��9Poniewaz
� � � � �, to
� �� � � � ����3 � � oraz� �� � � � ���63 � � i mamy wtedy
cztery rózne pierwiastki z 1, � � � � � � � � � � � . Sa to liczby dla których
� � ���63 � � �� � � ���63 � ���
�
� � ���63 � � �� � � ���63 � � � � �
� � ���63 � � � � � � � ���63 � ����
� � ���63 � � � � � � ���63#� � � � 9Zauwazmy, ze � � � � � ����3 � � oraz � � � � � � ���63 � � .
1.15 Funkcja Eulera
Definicja 1.48 Funkcja Eulera, jest to funkcja, która liczbie � przypisuje � � � � liczbeelementów odwracalnych w � � . Z definicji przyjmujemy � � � � ���
.
Przykład 1.49 � � � ��� , bo w �� odwracalne sa � � � � � � �� .Podobnie � � � � � �
, � � � � � � , � � � � � �, � � �� � � , � � � � � .
Lemat 1.50 a) Jezeli�
jest liczba pierwsza, to dla dowolnego � �, � � � � � �� �
�� � � � � � . W szczególnosci � � � � ��� � � .
b) Jezeli � i�
sa wzglednie pierwsze, to � � � � � � � � � � � � � � � �
26 Rozdział 1. Teoria liczb
Dowód:a) Zauwazmy ze, wsród liczb
�� 99 9 � � � wzglednie pierwsze z
� �nie sa te, które sa po-
dzielne przez�
, jest ich� � ' � � � � � � , czyli
� � � � � ��� � � � � � � ��� � � � � � � � ��9b) Najpierw zauwazmy, ze dla dowolnej liczby � ,
�# � " � �
����� � � � � � � � �
wtedy i tylko wtedy gdy
����� � � � � � � �oraz ����� � � � � � � �
a to zachodzi wtedy i tylko wtedy gdy reszty � � � � ����3�� oraz � � � � ����3 �
spełniaja warunki
����� � � � � � � � �oraz ����� � � � � � � ���
(1.7)
Par reszt � � � � � � � spełniajacych warunek (1.7) jest � � � � � � � � � , a z chinskiego twierdzeniao resztach kazdej liczbie � ,
� � " � �
odpowiada dokładnie jedna para reszt, i naodwrót kazdej parze reszt odpowiada jedna liczba. Tak wiec liczb wzglednie pierwszychz � �
jest � � ��� � � � � ��9 �
1.16 Szybkie potegowanie
Teraz zastanowimy sie jak mozna potegowac, czyli jak obliczyc � � ���63 �
dla � � � �oraz � ��� . Pierwszy nasuwajacy sie algorytm potegowania polega na � krotnym mno-zeniu przez � :
y:=1;for i:=0 to k do y:=y*a mod n
W kryptografii oblicza sie potegi z wykładnikami posiadajacymi po kilkaset bitów. Dotakich zastosowan powyzszy algorytm jest nieprzydatny (wymaga on � mnozen).
Pokazemy teraz jak mozna potegowac duzo szybciej. Zauwazmy, ze
� � � � � � � � � � � � � � �
i ogólnie
� � � � � � � � � � ��� � 9Dlatego, aby obliczyc potege o wykładniku, który jest potega dwójki � � � � nalezywykonac
y:=a;for i:=1 to j do y:=y*y mod n
1.16. Szybkie potegowanie 27
Przykład 1.51 Aby obliczyc� � �
w � � � obliczmy� � � �-� � ��� � ����3 ��� � ,� � ��� ���!� � � ����3 ��� � ,� � ������ � � ����3 ��� � ,� � � ����� � ��� � ���63 � � � .Jezeli wykładnik jest suma poteg dwójki � ���
� ��� � , to
� � � � � � � � ��� 9Przykład 1.52 Aby obliczyc
� ��� ���63 � � trzeba wymnozyc� ��� � � � � � � � � � � � � � � � � �
�)� � ���63 � � � .Zauwazmy, ze kazda liczba naturalna � jest suma poteg dwójki
� ��� � � ��� ��� �
�
gdzie�� � � � � � � to cyfry rozwiniecia dwójkowego � .
Powyzsze uwagi sugeruja nastepujacy algorytm obliczania potegi � � .Algorytm szybkiego potegowaniaDane wejsciowe: podstawa a oraz wykładnik k=(dj,...,d0) w postaci binarnej.
x:=a; y:=1if d0=1 then y:=y*a mod nfor i:=1 to j do
x:=x*x mod n;if di=1 then y:=y*x mod n
Zmiennax zawiera kolejne potegi � o wykładnikach bedacych potegami 2. Na poczatku� � � � � ��� . Po
�tej iteracji petli for � � � � � . Jezeli
�� � �to mnozymy � przez � � � � � .
Na koncu� � � � � � � ��� � � �� � � � � � ��8� � � 9
Przykład 1.53 Przesledzmy działanie algorytmu podczas obliczania� ��� � ���63 � � � . � �
w zapisie dwójkowym ma postac � � �)� �)� � � . Ponizsza tabela zawiera wartosci zmiennej xi y przed wejsciem do petli for i=0) oraz po kazdej iteracji.
i x y0 2 21 4 82 3 83 9 84 3 11
Zauwazmy, ze wyniki posrednie, i ostateczny, naleza do � � i algorytm nie potrzebujezbyt duzej pamieci. Algorytmu tego nie mozna stosowac do obliczania � � w liczbachcałkowitych, jezeli � jest duze, to wynik ostateczny oraz posrednie beda zbyt duze, zebymógł sie zmiescic w pamieci komputera.
28 Rozdział 1. Teoria liczb
1.17 Małe twierdzenie Fermata
Twierdzenie 1.54 (Fermata) Niech � ��� �� , wtedy
� ��� ��� � � � ���63 ��� 9Dowód Niech
� � � � �� 99 9 � � ��� ���to beda wszystkie elementy � �� . Jezeli pomnozymy je przez �
��� � � ��� � � 9 99 � ��� ��� ���to zgodnie z lematem 1.36 otrzymamy te same elementy tylko w innej kolejnosci.
Wymnózmy teraz elemnty obu ciagów
��� ������� � �
� ���� ������� � ���
� � � ��� ������ ������� � �
� � ���63 � ��9
Po pomnozeniu przez odwrotnosc ���� ���� � � � � otrzymamy teze twierdzenia. �
Wniosek 1.55 Jezeli�
jest liczba pierwsza, to dla kazdego � wzglednie pierwszego z�
mamy� � � � � � � ����3 � � 9
1.18 Szyfry RSA
W szyfrach one-pad opisanych w rozdziale o funkcjach boolowskich klucz do szyfrowa-nia jest ten sam co klucz do deszfrowania. W szyfrach liniowych wprawdzie klucze doszyfrowania i deszyfrowania sa rózne, ale jaden łatwo mozna wyliczyc z drugiego. Takieszyfry nazywamy symetrycznymi.
Teraz zapoznamy sie ze sposobem szyfrowania, w których klucz do szyfrowania mozebyc jawny, nawet ogłaszany publicznie, a klucz do deszyfrowania jest tajny i jest praktycz-nie niemozliwe wyliczenie klucza tajnego z klucza jawnego. Sposób ten zaproponowaliRivest, Shamir i Adleman. Przypuscmy, ze Alicja chce utworzyc swój klucz. Bierze wtym celu dwie duze liczby pierwsze
�i � , kazda moze zawierac po kilkaset bitów. Tworzy
ich iloczyn� � � � . Funkcja Eulera � � � � � � � � � � � � � � � . Nastepnie Alicja losuje liczbe
� , która jest wzglednie pierwsza z � � � � . Skoro ����� � ��� � � � � � � �to istnieje liczba
�, taka, ze � � � � � ����3 � � � � � . Teraz para � � � � � jest jawnym kluczem Alicji i moze
byc publicznie ogłoszona. Para � �
�� � jest kluczem prywatnym Alicji, nie powinna go ona
nikomu zdradzac. Alicja nie powinna tez zdradzac rozkładu liczby�
na czynniki. Jezeliktos zna
�i � , to moze wyliczyc � � � � oraz
�.
Przypuscmy, ze Bob chce przesłac Alicji jakas zaszyfrowana wiadomosc � . Traktuje-my te wiadomosc jako liczbe � " �
. (Jezeli wiadomosc jest ciagiem znaków, to kodujemy
1.19. Testy pierwszosci 29
kazdy znak jako 8 bitów i cały ciag moze byc traktowany jako liczba w postaci dwójko-wej.) Bob szyfruje wiadomosc przy pomocy funkcji szyfrujacej
���� � � � � � ���63 �
i przesyła ja Alicji. Alicja odszyfrowuje za pomoca funkcji deszyfrujacej
��� � � � � � ���63 � 9
Pokazemy teraz, ze jezeli � ��� � � � � � � �, to
���� �
� � � � � � 9Mamy
������
� ��� � � � � � ���63 � 9Poniewaz � �!� � � ���63 � � � � � , wiec istnieje � takie, ze � �����4� � � � � � , czyli
���� �
� ��� � � � � � � ��� � � � � � � � ��� � � � ���63 � �
ale jezeli ����� � � � � � � �, to � � ��� � � � � � ��� � � � � � � � ���63 � � . Tak wiec �
��� �
� � � � �� . Do powyzszego potrzebne było załozenie, ze ����� � � � � � � �
. Ale gdy ktos trafi nawiadomosc � , która nie jest wzglednie pierwsza z
�
, to Alicja ma pecha, poniewaz wtedymozna dokonac rozkładu liczby
�
i złamac jej szyfr.Łatwo tez mozna pokazac, ze
���� ��� � � � � � .
Niesymetryczne szyfry daja nowe mozliwosci. Mozna ich na przykład uzywac dopodpisu. Aby podpisac jakas wiadomosc � , Alicja szyfruje ja swoim szyfrem prywat-nym �
�� � � i jest to podpis wiadomosci � . Alicja wysyła Bobowi pare � � � �
�� � � � .
Zeby sprawdzic, ze wszystko sie zgadza Bob szyfruje podpis publicznym kluczem Alicjii sprawdza czy ���
� ��� � � � � � 9
1.19 Testy pierwszosci
W tym rozdziale zajmiemy sie zagadnieniem jak sprawdzic, czy liczba�
jest pierwsza.Mozemy sobie wyobrazic, ze
�
ma kilkaset bitów. Jak widac z poprzedniego rozdziałuduze liczby pierwsze moga byc przydatne.
1.19.1 Test naiwny
Najprostszy sposób to, dzielic�
przez kolejne liczby (pierwsze) az do� �
. Jednak tentest jest zupełnie niepraktyczny, jezeli
�
ma kilkaset bitów.
30 Rozdział 1. Teoria liczb
1.19.2 Test Fermata
Drugi test jest algorytmem probabilistycznym i opiera sie na twierdzeniu Fermata 1.54.Losujemy liczbe � " �
i najpierw sprawdzamy, czy � ��� � � � � � � �. Jezeli � i
�
nie sa wzglednie pierwsze, i ����� � � � � � � � � �, to
�jest dzielnikiem
�
i�
nie jestpierwsza.
Jezeli ����� � � � � � � �, to obliczamy � � � � ���63 �
. Jezeli � � � � �� � � ���63 � � , tomamy pewnosc, ze
�
nie jest liczba pierwsza.
Definicja 1.56 Taka liczbe � , dla której ����� � � � � � � �oraz � � � � �� � � ���63 � �
bedziemy nazywac swiadkiem Fermata dla�
, poniewaz zaswiadcza ona, ze�
jest złozona.
Jezeli � � � � � � � ���63 � � , to orzekamy, ze liczba�
jest pierwsza. W tym przypadkumozemy sie pomylic. Liczba
�
moze byc złozona a mimo to wylosowalismy pechowo i� � � � � � � ����3 � � . Ale zachodzi nastepujacy lemat.
Lemat 1.57 Jezeli istnieje takie ��� � �� , ze � � � � �� � � ���63 � � , to przynajmniej poło-wa elementów � �� jest swiadkiem Fermata dla
�
.
Dowód. Przypuscmy, ze� � � � 9 99 � � � �
sa to wszystkie elementy � �� , dla których � � � �� � � � ����3 � � . Wtedy po pomnozeniuprzez � otrzymamy � elementów
���6� � � 9 99 � �6� � �róznych miedzy soba (lemat 1.36), z których kazdy jest swiadkiem Fermata. Rzeczywi-scie
� ��� � � � � � � � � � � � � � �� � � � � � �� � � ���63 � ��9A wiec swiadków złozonosci jest co najmniej połowa. �
Jezeli�
jest pierwsze, to z Twierdzenia Fermata, algorytm zawsze orzeknie dobrze.Z lematu 1.57 wynika, ze jezeli
�
jest złozona i istnieje swiadek Fermata dla�
, to takichswiadków jest co najmniej połowa, i nasz algorytm pomyli sie z prawdopodobienstwem" � ' � . Prawdopodobiensto, to mozna zmniejszyc poprzez powtórzenie algorytmu � razy,z róznymi wylosowanymi � .
Istnieja jednak liczby złozone�
, które nie maja swiadków złozonosci. Na przykład� � � . Kłopot bierze sie stad, ze
�!� �����)� ��� �, a � � � � �
dzieli sie przez� � � � �,� � � ��� � �
oraz przez� � ��� � �
. Dlatego dla dowolnego � , jezeli����� � � � � � � �
, to � jest wzglednie pierwsze z�,���
i���
oraz mamy
� � � � � � � � � � � ��� � ���63 � �� � � � � � � � � � � ��� � � ���63 ��� �� � � � � � � � � � � � � � � ���63 � � �
i z chinskiego twierdzenia o resztach wynika, ze
� � � � � � � ���63 � �Takie liczby nazywaja sie liczbami Carmichaela. Pierwsze trzy z nich to 561, 1105 i 1729.Wystepuja one bardzo rzadko, jest ich tylko 255 wsród liczb mniejszych od 100 000 000.
1.19. Testy pierwszosci 31
1.19.3 Test Millera-Rabina
Zakładamy, ze�
jest nieparzyste (2 jest jedyna parzysta liczba pierwsza). Najpierw spraw-dzamy, czy
�
jest potega jakiejs liczby naturalnej. Dla od 2 do / ��� � �
sprawdzamy czy� � � � , dla jakiegos � . W rozdziale o arytmetyce opisano jak za pomoca binary searchstwierdzic, czy liczba jest potega innej liczby. Jezeli
�
jest potega, to jest złozona.Poniewaz
�
jest nieparzyste, to� � � mozemy przedstawic w postaci
� � � � � ����� 9dla jakiegos � nieparzystego.
Losujemy � " �
. Sprawdzamy, czy � ��� � � � � � � �(jezeli ����� � � � � �8� �
, to�
jest złozona).Nastepnie obliczamy � � ���63 �
. Jezeli � � ���63 � � �, to koniec, stwierdzamy, ze
�
jest pierwsza. Jezeli � � ���63 � �� �, to obliczamy po kolei
� � � ����3 �
� � � � � ���63 �
� 99 9 � � � ��� ���63 � 9Zauwazmy, ze w tym ciagu kazda liczba jest kwadratem poprzedniej. Jezeli wsród tychliczb nie ma jedynki, to z twierdzenia Fermata wynika, ze
�
jest złozona, bo wtedy
� � ����� � � � � �� � � ����3 � ��9Jezeli w tym ciagu jest jedynka, na przykład
� � � � ��� � ����3 � �
to patrzymy na poprzedni element � � � � � ��� � . Jezeli � �� � � , to znalezlismy nietrywial-ny pierwiastek z 1. Z twierdzenia 1.46 wynika, ze jest to mozliwe tylko wtedy gdy
�
niejest pierwsze. Jezeli � � � � , to orzekamy, ze
�
jest pierwsze.Łatwo wiec widac, ze jezeli
�
jest pierwsze, to test zawsze odpowie prawidłowo,niezaleznie od losowania. Wiadomo tez, ze jezeli
�
jest złozona i nie jest potega licz-by pierwszej, to z prawdopodobienstwem wiekszym niz
� ' � wykryjemy to (dowód tegofaktu wybiega poza zakres tej ksiazki i pomijamy go).
W praktyce stosujemy wszystkie trzy testy na raz. Majac nieparzysta liczbe�
, naj-pierw sprawdzamy, czy dzieli sie ona przez kilka kolejnych liczb pierwszych
� � � � �� 9 99 � � � 9Dobór
�zalezy od tego jak duze liczby sprawdzamy. W ten sposób eliminujemy duza
czesc liczb. Zauwazmy, ze obliczajac iloczyn tych liczb
� ���� � �� �
i sprawdzajac, czy ����� � � � � � �&�mozemy za jednym razem sprawdzic, czy
�
dzielisie przez któras z tych liczb.
32 Rozdział 1. Teoria liczb
Po przejsciu pierwszego testu stosujemy test drugi, a gdy liczba�
go przejdzie stosu-jemy test trzeci.
Poniewaz liczby Carmichaela sa dosc rzadkie, wiec drugi test wyeliminuje wiekszoscliczb złozonych.
Jezeli chcemy wyklosowac liczbe pierwsza to losujemy nieparzysta liczbe, a mastepniesprawdzamy, czy jest ona pierwsza. Jezeli nie, to sprawdzamy nastepne liczby
� � ��
� ��� 91919 .
1.20 Zadania
1. Dla kazdej z liczb: � � , � , ��� � oraz � ���)� znajdz liczbe � � � � � � � � � � � � � taka,
ze � � � � ���63 � .2. W pierscieniu � wykonaj działania
��� oraz��� .
3. W pierscieniu � rozwiaz równania: a)� � � � �
, b)� � � � �
, c)8� � � �
, d)8� � � � .4. W pierscieniu ��� rozwiaz równania: a)
��� � � �, b)
� � � � � .5. W pierscieniu � rozwiaz równania: a)
�-� � � �, b)
��� � � � .6. Dla liczb � � ��� i � � � ��)�
oblicz ����� � � � � � oraz liczby całkowite � i �spełniajace równanie � � � �6� � ����� � � � � � .
7. Oblicz ����� � � ��� � � � ��� (� � � .8. W pierscieniu � ��� rozwiaz równania: a)
� ��� � ����3 � � � .9. W pierscieniu � � � rozwiaz równania: a) � ��� , b) � � �
.
10. Znajdz całkowite rozwiazanie � � � � � spełniajace równanie:� � � � ��� � � �
.
11. Podaj rozkład na czynniki pierwsze liczb� ���
oraz�)���
.
12. Ile dzielników ma liczba� ���
?
13. Podaj tabliczke dodawania i mnozenia w ciele � � . Podaj elementy odwrotne do 5 i6 w � � .
14. Znajdz elementy odwrotne do wszystkich elementów dwracalnych w � .15. Dla jakich par reszt � � � � � � � istnieja liczby � spełniajace układ kongruencji:
� � � � � ���63 � � �� � � � � ���63 � 9
16. Niech � � i � � beda dowolnymi dodatnimi liczbami całkowitymi. Dla jakich parreszt � � � � � � � istnieja liczby � spełniajace układ kongruencji:
� � � � � ���63 � � � �� � � � � ���63 � � � 9
1.21. Problemy 33
1.21 Problemy
1.21.1 Najwiekszy wspólny dzielnik
Udowodnij, ze � ��� � � � ��� jest najmniejsza dodatnia liczba�, dla której istnieje � i �
całkowite, takie ze � � � �(� ���.
Udowodnij, ze kazda liczba postaci � � � �(� , dla � i � całkowitych, jest wielokrotnoscia����� � � � � � , i na odwrót, kazda wielokrotnosc � ��� � � � ��� jest postaci � � � �(� , dla jakis� i � całkowitych.
Udowodnij, ze ponizszy algorytm poprawnie oblicza najwiekszy wspólny dzielnik����� � � � � � , jezeli � �$��� � :
var a,b,p,q,r,:integer;begin
readln(a,b);p:=a;q:=b;while q >0 do
beginr:=p mod q;p:=q; q:=r
end;writeln(’NWD(’,a,’,’,b,’)=’,p)
end.
Zmodyfikuj powyzszy program, tak aby oprócz � ��� � � � ��� , obliczał takze współ-czynniki � i � , takie ze �� � �6� � ����� � � � � � .
1.21.2 Najmniejsza wspólna wielokrotnosc
Niech ��� � � � � ��� oznacza najmniejsza wspólna wielokrotnosc liczb � i � .Udowodnij, ze � � � � � � � � dzieli kazda inna wspólna wielokrotnosc liczb � i � .Pokaz, ze ��� � � � � � � � � ��� � � � ��� � � � �
1.21.3 Liczby wzglednie pierwsze
Udowodnij, ze jezeli � jest wzglednie pierwsze z � i � , to � jest wzglednie pierwsze ziloczynem tych liczb �6� .
Jako wniosek udowodnij, ze jezeli � jest wzglednie pierwsze z kazda z liczb � � � 919 9 � � � ,to � jest wzglednie pierwsze z iloczynem tych liczb
����� � �
� 9
34 Rozdział 1. Teoria liczb
1.21.4 Układ kongruencji
Istnieje inny sposób rozwiazywania układu kongruencji. Pokazemy go na przykładzieukładu
� � � � � ���63 � � � (1.8)
� � � � � ���63 � �Najpierw szukamy dwóch liczb � � � i � � � spełniajacych warunki
� � � � � � ���63 � � �� � � � � � ���63 � �� � � � � � ���63 � � �� � � � � � ���63 � �Udowodnij, ze rozwiazaniem układu (1.8) jest
� � � � � � � � � � � � � � � � ���63 �� � 9Jak policzyc � � � oraz � � � ? Poniewaz 3 i 5 sa wzglednie pierwsze, wiec istnieja � i � takie,ze � � �� � ���Pokaz, ze jezeli podstawimy � � � � � � � ���63 �� � oraz � � � � � � ���63 �� � , to bedziedobrze.
1.21.5 Chinskie twierdzenie o resztach
Z chinskiego twierdzenia o resztach wynika, ze jezeli ����� � � � � � � �, to funkcja
� � � � � � � ���63�� � � ���63 � �stanowi wzajemnie jednoznaczne odwzorowanie pomiedzy � � � a iloczynem kartezjan-skim ������� � .
Na iloczynie kartezjanskim � ��� � � mozemy okreslic działania dodawania i mnoze-nia w nastepujacy sposób:
� � � � � � � � � � � � � � � � � � ��� � � � � � � � ��� � � � � � � � � � � � � ��9Łatwo mozna sprawdzic, ze zbiór � ��� � � z tak okreslonymi działaniami, jest pierscie-niem. Ponadto funkcja
�spełnia warunki
� � � � � � � � � � � � � � � � oraz� � � � ��� � � � ��� � � � � .