1 Podstawowe wªasno±ci arytmetyczne liczb caªkowitych 1.1 Oznaczenia W caªym skrypcie b¦dziemy u»ywali nast¦puj¡cych oznacze«: N = {0, 1, 2, . . . } jest zbiorem liczb naturalnych (z zerem), Z jest zbiorem liczb caªkowitych. B¦dziemy zakªada¢, »e czytelnikowi znane s¡ denicje i wªasno±ci podstawowych dziaªa« arytmetycznych (dodawanie, mno»enie) oraz porz¡dku w tych zbiorach. 1.2 Twierdzenie o dzieleniu z reszt¡ Wszystkie wªasno±ci liczb caªkowitych omawiane w tym rozdziale s¡ konsekwencj¡ nast¦puj¡cego twierdzenia. Twierdzenie. Je»eli liczby caªkowitej i r a b jest liczb¡ caªkowit¡ ró»n¡ od zera, to dla dowolnej istnieje jednoznacznie wyznaczona para liczb caªkowitych q takich, »e 1. a = bq + r, 2. 0 ≤ r < |b|. Liczb¦ q Dowód. b, a liczb¦ r nazywamy a mod b. istnienie pary (q, r) oraz jej jedno- nazywamy cz¦±ciowym ilorazem liczby reszt¡ z dzielenia a przez b a przez i oznaczamy symbolem Twierdzenie zawiera dwie tezy: znaczno±¢. Udowodnimy najpierw istnienie takiej pary. Zaªó»my najpierw, »e b jest liczb¡ naturaln¡. Poka»emy najpierw, »e dla dowolnej liczby naturalnej a istniej¡ liczby q i r speªniaj¡ce warunki 1 i 2 twierdzenia. Je»eli liczba a speªnia nierówno±¢ 0 ≤ a < b, to a = 0q + a jest »¡danym przedstawieniem. (Zauwa»my, »e z zaªo»enia b 6= 0 wynika istnienie odpowiedniego przedstawienia co najmniej dla a = 0). Zaªó»my wi¦c indukcyjnie, »e dla pewnej liczby a istnieje odpowiednie przedstawienie a = bq + r . Poka»emy, jak znale¹¢ odpowiednie przedstawienie dla liczby a + 1. Mamy oczywi±cie a + 1 = bq + (r + 1) i je±li oka»e si¦, »e r + 1 < b, to jest to »¡dane przedstawienie. W przeciwnym wypadku mamy r + 1 = b i mamy a + 1 = bq + b = b(q + 1) + 0. Twierdzenie o indukcji gwarantuje nam wi¦c istnienie odpowiedniego przedstawienia dla dowolnej liczby naturalnej a. a Zaªó»my teraz, »e liczba jest ujemna. Wówczas liczba −a jest liczb¡ natu- −a = bq+r, a = b(−q) + (−r). Przedstawienie to speªnia warunek 2 tylko wtedy, gdy r = 0. W przeciwnym wypadku nale»y przedstawienie poprawi¢, przestawiaj¡c"jedno b: a = b(−q − 1) + (b − r). Pozostaje jeszcze rozpatrzy¢ przypadek, gdy b < 0. Wówczas −b jest liczb¡ naturaln¡ i z udowodnionych ju» wªasno±ci wiemy, »e dla dowolnej liczby a istnieje przedstawienie a = (−b)q + r , gdzie 0 ≤ r < −b = |b|. Wówczas »¡danym przedstawieniem jest a = b(−q) + r . raln¡ i z udowodnionej przed chwil¡ wªasno±ci mamy przedstawienie co daje Udowodnimy teraz jednoznaczno±¢ przedstawienia. Zaªó»my wi¦c przeciwnie, »e dla pewnej pary liczb aib mamy dwa przedstawienia: a = bq + r = bq 0 + r0 , 1 0 ≤ r, r0 < |b|. przy czym Przeksztaªcaj¡c powy»sz¡ równo±¢ arytmetycznie i bior¡c warto±¢ bezwzgl¦dn¡ obu stron, otrzymujemy |b| · |q − q 0 | = |r0 − r|. −|b| < r0 − r < |b|, wi¦c prawa strona równo±ci jest liczb¡ naturaln¡ mniejsz¡ ni» |b|. Z kolei lewa strona jest naturaln¡ wielokrotno±ci¡ liczby |b|. Jedyn¡ naturaln¡ wielokrotno±ci¡ liczby |b| mniejsz¡ 0 0 od |b| jest liczba 0. St¡d |r − r| = 0 i |q − q | = 0 (raz jeszcze wykorzystali±my 0 0 zaªo»enie b 6= 0), a wi¦c q = q i r = r . r Na podstawie zaªo»e« o i r0 mamy 1.3 Rozwini¦cie liczby przy danej podstawie Twierdzenie. Je»eli b jest liczb¡ naturaln¡ wi¦ksz¡ od 1, to dowoln¡ dodatni¡ liczb¦ naturaln¡ a mo»e w sposób jednoznaczny przedstawi¢ w postaci a = a0 + a1 b + a2 b2 + · · · + as bs , gdzie 0 ≤ ai < b, i = 0, 1, . . . s, as 6= 0. (1) a w postaci (1) nazywa si¦ rozwini¦ciem liczby a przy a0 , a1 ,. . . ,as nazywamy cyframi rozwini¦cia. W skrócie a = (as as−1 . . . a1 a0 )b , przy czym podstaw¦ b pomija si¦, je±li Przedstawienie liczby podstawie b, liczby stosuje si¦ zapis b = 10. Przykªad. Dowód. Tak wi¦c mamy 1236 = 3 + 2 · 6 + 1 · 62 = 5110 = 51. Znowu musimy wykaza¢ istnienie odpowiedniego przedstawienia i jego jednoznaczno±¢. Aby udowodni¢ istnienie przedstawienia, zastosujemy indukcj¦ wzgl¦dem liczby a0 = a. wszystkich liczb przez a. a < b mamy oczywiste przedstawienie z s = 0 i a ≥ b i »e udowodnili±my ju» istnienie rozwini¦cia dla a0 mniejszych od pewnej liczby a. Podzielmy liczb¦ a z reszt¡ Dla liczb Zaªó»my wi¦c, »e b: a = bq + r, Iloraz cz¦±ciowy »enie b>1 q gdzie 0 ≤ r < b. jest liczb¡ naturaln¡ dodatni¡ (dlaczego?) przy czym zaªo- gwarantuje nam, »e q < a. Z zaªo»enia indukcyjnego mamy wi¦c przedstawienie q = a0 + a1 b + a02 b2 + · · · + as bs , gdzie s as 6= 0. jest pewn¡ liczb¡ naturaln¡ i 0 ≤ ai < b dla wszystkich i = 0, 1, . . . , s i Wówczas a = = r + bq = r + b(a0 + a1 b + a02 b2 + · · · + as bs ) = = r + a0 b + a1 b2 + · · · + as bs+1 , co daje »¡dane rozwini¦cie. Dla dowodu jednoznaczno±ci zauwa»my, »e wzór (1) mo»na przepisa¢ w postaci a = b(a1 + a2 b + · · · + as bs−1 ) + a0 , 2 a poniewa» cyfra a0 0 ≤ a0 < b, speªnia nierówno±ci wi¦c z twierdzenia o dziele- niu z reszt¡ wynika, »e jest jednoznacznie wyznaczone jako reszta z dzielenia a przez B, a wyra»enie w nawiasie jest ilorazem cz¦±ciowym. Dowód jednoznacz- no±ci mo»na wi¦c znowu poprowadzi¢ indukcyjnie wzgl¦dem 1.4 a Obecnie powszechnie u»ywamy systemu dziesi¡tkowego, ale z arytmetycz- nego punktu widzenia baza 10 nie jest w »aden sposób wyró»niona. oczywi±cie przywoªa¢ uzasadnienie anatomiczne: Mo»na mamy przecie» 10 palców. Zwró¢my jednak uwag¦ na to, »e równie dobr¡ odpowiedzi¡ na pytanie o liczb¦ palców jest 5 (palców u jednej dªoni) i 20 (palców u r¡k i nóg razem). I rzeczywi±cie w pewnych j¦zykach europejskich i azjatyckich mamy ±lady podstawy 20. Na przykªad w j¦zyku francuskim 20 to vingt, 90 to quatrevingtdix czyli cztery dwudziestki i dziesi¦¢ (podobny schemat obowi¡zuje w nazwach liczebników od 60 do 99). pi¡tkowego. W pewnych j¦zykach afryka«skich mamy ±lady systemu Mo»na te» jak niektórzy Indianie Ameryki Póªnocnej liczy¢ nie palce, a przerwy mi¦dzy palcami, co daje podstaw¦ osiem. Inni natomiast na tych samych dziesi¦ciu palcach potra¡ liczy¢ do 60 (zob. G. Ifrah, Dzieje liczby czyli Historia wielkiego wynalazku, Wrocªaw 1990). lady skomplikowanego dziesi¦tnosze±¢dziesi¡tkowego systemu sumeryjskobabilo«skiego mamy w podziale k¡ta i czasu (1 stopie« = 60 minut, 1 minuta = 60 sekund). Niektórzy dopatruj¡ si¦ reliktów systemu dwunastkowego w podziaªach pewnych jednostek na 12 mniejszych jednostek (np. 1 dzie« = 12 godzin, 1 stopa = 12 cali). Jednak od takiego podziaªu do konsekwentnego systemu dwunastkowego jeszcze daleko i nie wydaje si¦, aby taki system byª gdziekolwiek u»ywany. W elektronice i w technice komputerowej znalazª zastosowanie system dwójkowy i pomocniczo systemy ósemkowy i szesnastkowy (zobacz poni»ej). 1.5 Zauwa»my, »e dowód twierdzenia z punktu 1.3 daje nam efektywny al- gorytm rozwini¦cia danej liczby a przy podstawie b, a dokªadniej wypisania wszystkich cyfr tego rozwini¦cia: 1. zaczynamy od dzielenia z reszt¡ liczby a przez podstaw¦ b, 2. reszt¦ wypisujemy jako zerow¡ cyfr¦ rozwini¦cia, 3. je±li iloraz q jest równy zero, to ko«czymy; w przeciwnym wypadku roz- poczynamy algorytm od punktu 1., zamieniaj¡c liczb¦ a na liczb¦ q. Poniewa» kolejne ilorazy utworz¡ malej¡cy ci¡g liczb naturalnych, wi¦c w pewnym kroku oblicze« musimy uzyska¢ iloraz zerowy i algorytm zatrzyma si¦. Przykªad. Rozwi«my liczb¦ a = 2008 przy podstawie Mamy po kolei 2008 = 8 · 251 + 0, 251 = 8 · 31 + 3, 31 = 8 · 3 + 7, 3 = 8 · 0 + 3, 3 b = 8. czyli 2008 = 37308 . Przy r¦cznych rachunkach wygodnie jest prowadzi¢ zapis w postaci nast¦puj¡cej tabeli: 2008 251 31 3 0 0 3 7 3 Odwrotne zadanie przej±cia od systemu o danej podstawie b do systemu dziesi¦tnego wynika bezpo±rednio ze wzoru (1), ale warto tu zwróci¢ uwag¦ na pewien aspekt obliczeniowy tego rachunku. Wykonanie rachunku zgodnie z tym wzorem wymaga b2 , b3 , ..., bs 2s − 1 mno»e«: s − 1 mno»e« do obliczenia kolejnych pot¦g s mno»e« do obliczenia iloczynów ai bi . Tymczasem proste oraz przeksztaªcenie wzoru daje wyra»enie a0 + b(a1 + b(a2 + . . . (as−1 + bas ) . . . )). Taki sposób oblicze« nazywa si¦ schematem Hornera. Wymaga on jedynie s mno»e« (i tak¡ sam¡ liczb¦ dodawa« jak schemat naiwny). Je»eli mamy zamieni¢ podstaw¦ b na inn¡ podstaw¦ b0 , to najlepiej po±red- nio posªu»y¢ si¦ podstaw¡ 10. Jest jednak jeden wyj¡tek, w którym zamiana jednej podstawy na drug¡ jest szczególnie ªatwa. Zaªó»my, »e podstawa k -t¡ pot¦g¡ podstawy b wszystkich liczb od 0 do B jest i »e dysponujemy tabel¡ rozwini¦¢ przy podstawie B − 1 (a wi¦c cyfr przy podstawie B ). b Wówczas proces zamiany jednej podstawy na drug¡ mo»na wykona¢ czysto mechanicznie bez jakichkolwiek rachunków. a = a0 + a1 B + B , czyli dla ka»dego i k Poniewa» B = b , wi¦c ka»d¡ z cyfr ai mo»emy jednoznaczk−1 nie przedstawi¢ w postaci ai = ai,0 + ai,1 b + · · · + ai,k−1 b , gdzie wszystkie liczby ai,j s¡ cyframi dla podstawy b (jest to tak zwane k znakowe rozwini¦cie przy podstawie b czyli zwykªe rozwini¦cie przy podstawie b uzupeªnione tak¡ liczb¡ cyfr zerowych, aby otrzyma¢ dokªadnie k znaków). Wówczas Podstaw¡ tej metody jest nast¦puj¡ce rozwa»anie. Niech a2 B 2 + · · · + as B s mamy 0 ≤ ai < B . a b¦dzie rozwini¦ciem przy podstawie = a0 + a1 B + a2 B 2 + · · · + as B s = = a0,0 + a0,1 · b + · · · + a0,k−1 · bk−1 + +(a1,0 + a1,1 · b + · · · + a1,k−1 · bk−1 )bk + · · · + +(as,0 + as,1 · b + · · · + as,k−1 · bk−1 )bks = = a0,0 + a0,1 · b + · · · + a0,k−1 · bk−1 + +a1,0 bk + a1,1 · bk+1 + · · · + a1,k−1 · b2k−1 + · · · + +as,0 · bks + as,1 · bks+1 + · · · + as,k−1 · bk(s+1)−1 Ze wzgl¦du na jednoznaczno±¢ rozwini¦cia ostatnie wyra»enie mo»e ró»ni¢ si¦ a przy podstawie b jedynie o zb¦dne cyfry zerowe przy najwy»b. Otrzymujmy wi¦c nast¦puj¡cy algorytm: aby z rozwini¦cia podstawie B otrzyma¢ rozwini¦cie przy podstawie b, wystarczy zamieni¢ od rozwini¦cia szych pot¦gach przy 4 cyfry rozwini¦cia przy podstawie stawie b B k znakowymi ich rozwini¦ciami przy pod- i (ewentualnie) usun¡¢ pocz¡tkowe zera. Przej±cie w drug¡ stron¦ jest odwróceniem tej procedury: maj¡c rozwini¦cie przy podstawie powa¢ jego cyfry w bloki k cyfrowe nast¦pnie ka»dy blok zast¡pi¢ odpowiedni¡ cyfr¡ dla podstawy Przykªad. b, nale»y pogru- poczynaj¡c od cyfr najmniej znacz¡cych, a B. Na styku czªowieka z maszyn¡ cz¦sto zamiast systemu dwójkowego stosuje si¦ system szesnastkowy. Cyframi przy podstawie 16 s¡ liczby od 0 do 15, wi¦c dla jednoznaczno±ci zapisu przyj¦ªo si¦ oznacza¢ dodatkowe (wzgl¦dem systemu dziesi¦tnego) cyfry od 10 do 15 literami od A do F. Poniewa» 16 = 24 , wi¦c dla sprawnego przechodzenia od ukªadu szesnastkowego do dwójkowego i odwrotnie przygotujmy tabel¦ czterocyfrowych rozwini¦¢ dwójkowych cyfr szesnastkowych: 0 ↔ 0000 4 ↔ 0100 1 ↔ 0001 5 ↔ 0101 2 ↔ 0010 6 ↔ 0110 3 ↔ 0011 7 ↔ 0111 8 ↔ 1000 9 ↔ 1001 A ↔ 1010 B ↔ 1011 Je»eli mamy teraz na przykªad liczb¦ szesnastkowa C D E F ↔ 1100 ↔ 1101 ↔ 1110 ↔ 1111 5A4F16 rozwin¡¢ przy pod- stawie dwa, to wystarczy przepisa¢ w odpowiedniej kolejno±ci rozwini¦cia dwójkowe: 0101 | 1010 | 0100 | 1111 i pomin¡¢ pocz¡tkowe zera, wi¦c 5A4F16 = 1011010010011112 . 1.6 Relacja podzielno±ci liczb caªkowitych a dzieli liczb¦ caªkowit¡ b b = ac. Symbolicznie: Powiemy, »e liczba caªkowita liczba caªkowita c taka »e (ozn. a | b), je±li istnieje a | b ⇐⇒ ∃c∈Z b = ac. (2) Nale»y podkre±li¢, »e wzór (refrelpodz) deniuje relacj¦ w zbiorze liczb caªkowitych i zapisu a | b 0 odró»nieniu od wyra»enia 0 , zapis prawdziwym. Je»eli a | b, to liczb¦ a b . W szczególno±ci, w jest sensowny, co wi¦cej jest zdaniem nie nale»y myli¢ z uªamkiem a 0|0 b¦dziemy te» nazywa¢ dzielnikiem liczby b. Podstawowe, ªatwe do udowodnienia wªasno±ci relacji podzielno±ci zostaªy zebrane w poni»szym stwierdzeniu. Stwierdzenie. 1. 1 | a. 2. a | a. Dla dowolnych a, b, c ∈ Z 3. Je±li a | b i b | c, to a | c. 4. Je±li a | b i b | a, to |a| = |b|. 5 mamy 5. Je±li a | b, 6. Je±li a 6= 0, 7. Je±li a | b i a | c, 8. Je±li a | b, to (−a) | b i a | (−b). to to a|b to wtedy i tylko wtedy, gdy b mod a = 0. a | b ± c. a | bc. Punkty 2.-4. implikuj¡, »e relacja podzielno±ci obci¦ta do zbioru liczb naturalnych jest w tym zbiorze cz¦±ciowym porz¡dkiem. 1.7 Najwi¦kszy wspólny dzielnik Denicja. Najwi¦kszym wspólnym dzielnikiem liczb a, b ∈ Z nazywamy liczb¦ caªkowit¡ d tak¡, »e 1. d > 0, 2. d | a i d | b, 3. dla ka»dej liczby δ, je±li δ | a i δ | b, to δ | d. Na powy»sz¡ denicj¦ mo»na spojrze¢ w sposób nast¦puj¡cy: pierwsze dwa punkty mówi¡, »e deniowany obiekt jest pewnym dzielnikiem dodatnim wspólnym dla obu liczb a i b. Trzeci punkt mówi, »e jest on najwi¦kszy w zbiorze takich dzielników, ale nie w sensie zwykªego porz¡dku ≤ na liczbach natural- nych, a w sensie porz¡dku wyznaczonego przez relacj¦ podzielno±ci. Zauwa»my, »e powy»sza denicja nie gwarantuje istnienia najwi¦kszego wspólnego dzielnika. I rzeczywi±cie, ªatwo zobaczy¢, »e je±li nik pary (a, b) a = b = 0, to najwi¦kszy wspólny dziel- nie istnieje (ka»da liczba naturalna dodatnia speªnia pierwsze dwa warunki denicji i w zbiorze tym nie ma elementu najwi¦kszego). Naszym celem b¦dzie wykazanie, »e para (0, 0) jest jedynym wyj¡tkiem, w którym nie istnieje najwi¦kszy wspólny dzielnik. Stwierdzenie. (a, b) Je»eli dla pewnej pary istnieje najwi¦kszy wspólny dziel- nik, to jest on wyznaczony jednoznacznie. Dowód. (a, b) mamy dwie liczby d i d0 speªniaj¡ce warunki 1.-3. denicji. Warunek 3. dla d mówi, »e ka»dy wspólny dzielnik δ 0 0 liczb a i b jest te» dzielnikiem liczby d. Ale warunek 2. dla d gwarantuje, »e d 0 0 jest wspólnym dzielnikiem a i b. St¡d d | d. Symetrycznie otrzymujemy d | d . 0 W takiej sytuacji mamy |d| = |d | (pkt. 4. stwierdzenia 1.6). Jednak na mocy 0 0 punktu 1. denicji obie liczby d i d s¡ dodatnie, wi¦c d = d . Zaªó»my, »e dla danej pary Jednoznaczno±¢ pozwala nam wprowadzi¢ symbol dla najwi¦kszego wspólnego dzielnika: najwi¦kszy wspólny dzielnik liczb bolem NWD(a, b). Stwierdzenie. Dla dowolnych a, b ∈ Z 1. NWD(a, b) = NWD(b, a), 2. NWD(a, b) = NWD(|a|, |b|), 6 aib b¦dziemy oznacza¢ sym- 3. NWD(a, b) = NWD(a ± b, b), 4. je±li b 6= 0, to NWD(a, b) = NWD(a mod b, b), przy czym wszystkie równo±ci nale»y rozumie¢ w ten sposób, »e je±li istnieje liczba po jednej stronie równo±ci, to istnieje te» liczba po drugiej stronie i s¡ sobie równe. Dowód. Punkt 1. wynika z symetrii warunków denicji wzgl¦dem a i b. Punkt 2. wynika z niewra»liwo±ci relacji podzielno±ci na znaki (pkt. 5 stwierdzenia d = NWD(a, b). Musimy NWD z argumentem a zamienionym na a ± b. Oczywi±cie d > 0, bo z zaªo»enia d jest najwi¦kszym wspólnym dzielnikiem a i b. Liczba d dzieli liczby a i b, wi¦c na podstawie pktu 7. stwierdzenia 1.6 dzieli te» a±b. Zostaje wi¦c do sprawdzenia ostatni warunek denicji. Niech δ b¦dzie wspólnym dzielnikiem a ± b i b. Wówczas a = (a ± b) ∓ b i znowu na podstawie stwierdzenia 1.6 otrzymujemy, »e δ jest wspólnym dzielnikiem a i b. Ale z zaªo»enia d = NWD(a, b), wi¦c δ dzieli d, co mieli±my wykaza¢. Dla dowodu ostatniego punktu zauwa»my, »e a mod b = a − qb dla pewnej liczby caªkowitej q . Tez¦ otrzymujemy wi¦c przez wielokrotne zastosowanie 1.6). Udowodnimy punkt 3. sprawdzi¢, »e d Zaªó»my, »e istnieje speªnia warunki 1.-3. denicji poprzedniego punktu dowodzonego stwierdzenia. 1.8 Algorytm Euklidesa Jest jeden przypadek, w którym dowód istnienia najwi¦kszego wspólnego dzielnika sprowadza si¦ do ªatwego sprawdzenia warunków 1.-3. denicji. Stwierdzenie. Je»eli a 6= 0, to NWD(a, 0) = |a|. Poka»emy, w jaki sposób ogólne zagadnienie obliczenia NWD(a, b) mo»na sprowadzi¢ do przypadku opisanego w powy»szym stwierdzeniu. Na pocz¡tek zauwa»my, »e na podstawie punktów 1. i 2. stwierdzenia 1.7 obliczenie naj- a i b mo»emy zawsze sprowadzi¢ do obliczenia wyra»enia NWD(a1 , a2 ), gdzie a1 ≥ a2 ≥ 0 (wystarczy przyj¡¢ a1 = max(|a|, |b|) i a2 = min(|a|, |b|). Je±li a2 = 0, to albo najwi¦kszy wspólny dzielnik nie istnieje (je±li równie» a1 = 0), albo jest równy a1 . Wystarczy si¦ wi¦c zaj¡¢ przypadkiem a2 6= 0. W tym przypadku podzielimy a1 z reszt¡ przez a2 : a1 = q1 a2 + a3 , 0 ≤ a3 < a2 . wi¦kszego wspólnego dzielnika dwóch liczb NWD(a1 , a2 ) = NWD(a2 , a3 ) a3 = 0, to wiemy, »e NWD(a2 , a3 ) = a2 , co po pierwsze dowodzi istnienia NWD(a1 , a2 ) i po drugie daje nam jego warto±¢. W przeciwnym przypadku mo»emy podzieli¢ z reszt¡ a2 przez a3 : Na podstawie punktu 4. stwierdzenia 1.7 wiemy, »e (o ile istnieje!). Je±li oka»e si¦, »e a2 = q2 a3 + a4 0 ≤ a4 < a3 . Proces dzielenia z reszt¡ mo»emy kontynuowa¢, dopóki nie natkniemy si¦ na zerow¡ reszt¦. Ka»de dzielenie daje nast¦pny czªon w ci¡gu równo±ci: NWD(a1 , a2 ) = NWD(a2 , a3 ) = NWD(a3 , a4 ) = . . . , 7 przy czym nale»y pami¦ta¢ o warunkowym charakterze tych równo±ci: s¡ one prawdziwe pod warunkiem, »e wyst¦puj¡ce w nich obiekty istniej¡, przy czym uzasadnienie istnienia cho¢by jednego z nich gwarantuje istnienie wszystkich pozostaªych. Takim warunkiem uprawomocniaj¡cym powy»szy ci¡g równo±ci jest natkni¦cie si¦ na zerow¡ reszt¦. Je±li bowiem reszta ai jest równa zero, to na podstawie warunku 4. NWD(ai , ai+1 ) istnieje i równa si¦ ai czyli ostatniej przez ai+1 z dzielenia ai−1 stwierdzenia 1.7 wiemy, »e niezerowej reszcie w ci¡gu oblicze«. Powy»szy sposób obliczenia najwi¦kszego wspólnego dzielnika nazywa si¦ algorytmem Euklidesa. Twierdzenie. Dla ka»dej pary liczb (a, b) NWD(a, b). Dowód. Algorytm (0.0) algorytm Eu(a, b) 6= (0, 0) istnieje ró»nej od pary klidesa zatrzymuje si¦; w szczególno±ci dla ka»dej pary Euklidesa zatrzymuje si¦, gdy napotkamy reszt¦ równ¡ 0. Musimy wi¦c wykaza¢, »e dla dowolnej pary (a, b) 6= (0, 0) w ci¡gu a1 , a2 , a3 , . . . skonstruowanym powy»ej pojawi si¦ w ko«cu zero. Ci¡g ten jest ci¡giem liczb naturalnych i a1 ≥ a2 > a3 > a4 > . . . . Poniewa» ci¡g liczb naturalnych nie mo»e male¢ w niesko«czono±¢, wi¦c proces obliczania reszt musi kiedy± przerwa¢ si¦. 1.9 NWD za pomoc¡ algorytmu Euklidesa nie a1 , a2 , a3 , . . . . Do obliczenia kolejnego wyrazu Zauwa»my, »e do obliczenia musimy pami¦ta¢ caªego ci¡gu wystarcza znajomo±¢ dwóch poprzednich, co pozwala przeprowadzi¢ obliczenia w miejscu. Jest to szczególnie istotne, je»eli chcemy zaimplementowa¢ ten algorytm. Tak¡ wersj¦ algorytmu przedstawia nast¦puj¡cy schemat. Algorytm 1.1: Algorytm Euklidesa DANE: liczby caªkowite WYNIK: NWD(a, b) 1. 2. 3. 4. 5. 6. 7. aib a := |a|; b := |b|; if (a < b) then zamie« a z b; if (a = 0) then zgªo± bª¡d; while (b 6= 0) do c := a mod b; a := b; b := c; zwró¢ a jako wynik; 1.10 Zªo»ono±¢ obliczeniowa algorytmu Euklidesa Zªo»ono±¢ obliczeniowa algorytmu to miara pracochªonno±ci tego algorytmu w zale»no±ci od dªugo±ci danych wej±ciowych. Nie wdaj¡c si¦ tu w dalsz¡ dyskusj¦ 8 (zob. uwaga poni»ej), b¦dziemy zakªada¢, »e dobr¡ miar¡ pracochªonno±ci algorytmu Euklidesa jest liczba operacji obliczenia reszty, które musimy wykona¢ dla osi¡gni¦cia wyniku. Obliczaj¡c zaledwie kilku przykªadów, ªatwo przekona¢ si¦, »e dªugo±¢ oblicze« zale»y nie tyle od wielko±ci danych, ile od ich arytmetycznych wªa±ciwo±ci. St¡d b¦dziemy pyta¢ nie o dokªadn¡ liczb¦ kroków, a o górne oszacowanie tej liczby w zale»no±ci od wielko±ci danych. Zaªó»my wi¦c, »e a ≥ b > 0. Pytamy o maksymaln¡ liczb¦ dziele« z reszt¡ przy wykonaniu algorytmu dla danych a b. Wygodniej jednak pytanie odwróci¢: dla jakich a i b algorytm zako«czy prac¦ w stym kroku? i najmniejszych argumentów Niech wi¦c aib b¦d¡ najmniejszymi mo»liwymi liczbami, dla których algo- rytm Euklidesa wymaga dokªadnie Przyjmuj¡c a1 = a i a2 = b, a1 a2 s a > b ≥ 0. kroków. Mo»emy zaªo»y¢, »e mamy ci¡g równo±ci = q1 a2 + a3 , = q2 a3 + a4 , 0 < a3 < a2 , 0 < a4 < a3 , .............................................. as−1 as Liczba as+1 = qs−1 as + as+1 , = qs as+1 + 0. jest wspólnym dzielnikiem liczb 0 < as+1 < as , a1 , a2 ,. . . as . Gdyby as+1 byªo wi¦ksze od 1, to dziel¡c wszystkie powy»sze równania przez t¦ liczb¦ i podsta- a0i = ai /as+1 , otrzymaliby±my zapis wykonania algorytmu dla pary liczb (a/as+1 , b/as+1 ). Byªaby to para argumentów mniejszych od a i b, dla których wiaj¡c algorytm wymaga takiej samej liczby kroków. Dalej zauwa»my, »e z nierówno±ci dla liczb wida¢, »e ai wynika, »e wszystkie ilorazy cz¦±ciowe qi a1 i a2 przyjm¡ najmniejsz¡ warto±¢, je±li s¡ dodatnie. atwo teraz q1 = q2 = · · · = qs = 1. Wówczas as = as+1 = 1 ak−1 = ak + ak+1 dla k = 2, 3, . . . , s. Wygodniej bi = as+2−i , i = 1, 2, . . . , s + 1. Ze ci¡g b1 , b2 , . . . , bs+1 dany jest wzorem rekurencyjnym i ponumerowa¢ ci¡g od ko«ca, przyjmuj¡c wzorów dla ai wynika, »e b1 = b2 = 1, bi+2 = bi+1 + bi dla i = 1, 2, . . . , s − 1. Jest to ci¡g Fibonacciego, o którym b¦dziemy mówi¢ dokªadniej w pokaza¢, »e 1 bi ≈ √ 5 a st¡d po uwzgl¦dnieniu, »e Mo»na √ !i 1+ 5 , 2 bs = a2 = b, s≈ ??. mamy 1/2 log 5 + log b , log γ √ 1+ 5 2 , a za podstaw¦ logarytmów mo»na przyj¡¢ dowoln¡ ustalon¡ liczb¦. Zauwa»my, »e log2 b jest w przybli»eniu równy ilo±ci cyfr liczby b w zapisie gdzie γ = 9 dwójkowym, a wi¦c jest dobr¡ miar¡ dªugo±ci danej b. Powy»sze rozwa»ania mo»emy podsumowa¢ w postaci nast¦puj¡cego twierdzenia. Twierdzenie. b>0 Istnieje staªa dodatnia C taka, »e dla dowolnych danych algorytm Euklidesa wymaga nie wi¦cej ni» Uwaga. C log2 b a > dziele« z reszt¡. W teorii zªo»ono±ci miar¡ pracochªonno±ci algorytmu jest liczba tzw. operacji binarnych pewnej abstrakcyjnej maszyny modeluj¡cej prac¦ komputera. Sensowno±¢ takiej miary ªatwo zrozumie¢, je±li spróbujemy zaimplementowa¢ algorytm Euklidesa dla naprawd¦ du»ych argumentów: tak du»ych, »e nie da si¦ ich zapisa¢ jako warto±ci pojedynczych zmiennych typu integer w standardowych j¦zykach programowania. (Obliczenia NWD dla tak du»ych ar- gumentów nie s¡ niczym nadzwyczajnym: spotykamy je na przykªad w kryptograi i zapewne wielokrotnie zlecaªe± wykonanie takich rachunków swojemu komputerowi przy okazji otwierania stron internetowych za pomoc¡ tzw. bezpiecznego protokoªu internetowego https). Aby reprezentowa¢ pojedyncz¡ du»¡ dan¡ w komputerze, musimy u»y¢ caªego ci¡gu zmiennych. Wykonanie poje- dynczej operacji arytmetycznej np. dodawania du»ych liczb nale»y wówczas zaimplementowa¢ jako ci¡g operacji wykonywanych na standardowych zmiennych i liczba tych operacji b¦dzie zale»aªa od liczby zmiennych u»ytych do zapisu danych. Szacuj¡c wi¦c zªo»ono±¢ algorytmu Euklidesa, nie wystarczy jedynie oszacowa¢ liczb¦ dziele«, ale trzeba jeszcze uwzgl¦dni¢ rozmiar argumentów, na których operacji tych dokonujemy. Okazuje si¦, »e ilo±¢ operacji binarnych po- a i b mo»na oszacowa¢ log2 a i log2 b. St¡d algorytmem wielomianowym. trzebnych do wykonania algorytmu Euklidesa na danych za pomoc¡ wyra»enia zale»nego wielomianowo od warto±ci mówi si¦, »e algorytm Euklidesa jest 1.11 Rozszerzony algorytm Euklidesa Twierdzenie. Dla ka»dej pary liczb caªkowitych (a, b) 6= (0, 0) istniej¡ liczby caªkowite Dowód. obliczaj¡c αiβ takie »e Zaªó»my, »e NWD(a, b) NWD(a, b) = αa + βb. a ≥ b ≥ 0 i zapiszmy rachunki, jakie wykonujemy, za pomoc¡ algorytmu Euklidesa. Mamy a1 = a, a2 = b oraz a1 a2 = q1 a2 + a3 , = q2 a3 + a4 , ........................ ai = qi ai+1 + ai+2 , ........................ as−2 as−1 as Wówczas = qs−2 as−1 + as , = qs−1 as + as+1 , = qs as+1 + 0. NWD(a, b) = as+1 (R1 ) (R2 ) ... (Ri ) ... (Rs−2 ) (Rs−1 ) (Rs ) i warto±¢ t¦ mo»emy wyrazi¢ jako caªkowitolicz- bow¡ kombinacj¦ liniow¡ liczb as−1 oraz as , korzystaj¡c z równo±ci (Rs ): NWD(a, b) = 1 · as−1 + (−qs−1 ) · as . Poniewa» chwilowo nie b¦dzie nas interesowa¢ warto±¢ liczbowa wspóªczynników stoj¡cych przy as−1 i as , przepiszemy to w postaci NWD(a, b) = αs−1 · as−1 + βs−1 · as . 10 Korzystaj¡c z (Rs−2 ), mamy as = 1 · as−2 + +(−qs−2 ) · as−1 . Podstawiaj¡c obliczon¡ warto±¢ mujemy przedstawienie liczby as do poprzedniego wzoru dla NWD(a, b), otrzyNWD(a, b) w postaci kombinacji liniowej liczb as−2 i as−1 : NWD(a, b) = αs−2 · as−2 + βs−2 · as−1 . Wykorzystuj¡c równo±ci o coraz ni»szych numerach i wykonuj¡c podobne przeksztaªcenia, otrzymamy wreszcie »¡dane przedstawienie liczby NWD(a, b). Algorytm Euklidesa wzbogacony o znalezienie wspóªczynników αiβ nazywa si¦ rozszerzonym algorytmem Euklidesa. Przykªad. Obliczy¢ NWD(49, 18) i przedstawi¢ wynik w postaci kombinacji caªkowitoliczbowej argumentów. Rozwi¡zanie. Rozpoczynamy od ci¡gu dziele« z reszt¡. 49 18 13 5 3 2 = = = = = = 2·18 1·13 2· 5 1· 3 1· 2 2· 1 + + + + + + 13 5 3 2 1 0 Ostatni¡ niezerow¡ reszt¡ jest liczba 1, wi¦c poszukiwany najwi¦kszy wspólny dzielnik jest równy 1. Aby przedstawi¢ 1 w postaci α · 49 + β · 18, zacznijmy od wyznaczenia z poprzednich równo±ci kolejnych reszt jako kombinacji dwóch poprzednich reszt. Dla odró»nienia reszt od wspóªczynników, reszty zostaªy podkre±lone. 13 5 3 2 1 = = = = = 1·49 1·18 1·13 1· 5 1· 3 + + + + + (−2)·18 (−1)·13 (−2)· 5 (−1)· 3 (−1)· 2 Rozpoczynamy teraz od ostatniej równo±ci i podstawiamy do niej po kolei otrzymane wyra»enia dla reszt, pami¦taj¡c przy tym, »e interesuje nas nie warto±¢ 11 liczbowa, a wspóªczynniki: 1 Uwaga. = 1 · 3 + (−1) · 2 = = 1 · 3 + (−1) · [1 · 5 + (−1) · 3] = = (−1) · 5 + 2 · 3 = = (−1) · 5 + 2 · [1 · 13 + (−2) · 5] = = = 2 · 13 + (−5) · 5 = 2 · 13 + (−5) · [1 · 18 + (−1) · 13] = = (−5) · 18 + 7 · 13 = = (−5) · 18 + 7 · [1 · 49 + (−2) · 18] = = 7 · 49 + (−19) · 18. Dla ka»dego α a wi¦c liczby i β, k caªkowitego mamy (α − kb)a + (β + ka)b = αa + βb, których istnienie wynika z twierdzenia, nie s¡ wyznaczone jednoznacznie. Powy»sza równo±¢ pokazuje, »e je±li tak by byªo reszt¡ z dzielenia przez b. b 6= 0, α mo»na wybra¢ a 6= 0, to β mo»na to Analogicznie, gdy wybra¢ tak, aby byªo reszt¡ z dzielenia przez a. Na ogól jednak nie mo»na zapewni¢ obu warunków równocze±nie. 1.12 Opisana powy»ej metoda przedstawienia liniowej liczb a i b, jakkolwiek dobrze pokazuje, NWD(a, b) w postaci kombinacji sk¡d bior¡ si¦ wspóªczynniki α i β , to jest przy rachunkach r¦cznych do±¢ »mudna. Je±li próbujemy zaimplemen- towa¢ j¡, dochodz¡ dodatkowe trudno±ci zwi¡zane z konieczno±ci¡ pami¦tania a» do ko«ca rachunków wszystkich wyników po±rednich. Okazuje si¦, »e mo»na poprzednie rachunki przeorganizowa¢ tak, aby wykona¢ je w miejscu, bez potrzeby rezerwowania du»ej liczby zmiennych pomocniczych. a ≥ b > 0 i oznaczmy a1 = a, a2 = b. Zaªó»my jak uprzednio, »e nia NWD(a, b) Dla oblicze- algorytm Euklidesa ka»e nam oblicza¢ kolejne reszty z dzielenia. Poszukiwana liczba jest ostatni¡ niezerow¡ reszt¡ i wiemy z twierdzenia 1.11, »e daje si¦ przedstawi¢ w postaci kombinacji liniowej a i b. Mo»emy wi¦c spró- bowa¢ przedstawi¢ wszystkie reszty jako kombinacje liniowe a i b. W tym celu zaczynamy od dwóch trywialnych równo±ci a1 = 1·a+0·b a2 = 0 · a + 1 · b. Nast¦pn¡ liczb¡ w rachunkach jest ±ciowym liczb a1 i a2 . a3 = a1 − q1 a2 , gdzie q1 jest ilorazem cz¦- Istota pomysªu sprowadza si¦ do tego, aby rachunek taki wykona¢ nie tylko na liczbach, ale na caªych kombinacjach liniowych: przedstawienie a3 w postaci kombinacji liniowej pierwszej równo±ci drug¡ pomno»on¡ przez a i b mo»na otrzyma¢, odejmuj¡c od q1 . Post¦powanie to mo»na iterowa¢: maj¡c przedstawienia dwóch kolejnych reszt ai−1 ai = αi−1 · a + βi−1 · b = αi · a + βi · b, 12 ai+1 , mo»emy otrzyma¢ przedstawienie dla drug¡ pomno»on¡ przez reszt¦ qi−1 odejmuj¡c od pierwszej równo±ci z dzielenia ai−1 przez ai . Obliczenia r¦czne wygodnie zapisywa¢ w nast¦puj¡cej tabelce. Ka»dy wiersz tabelki zawiera dane dotycz¡ce jednej reszty, czyli sam¡ reszt¦ ai oraz wspóªczynniki αi i βi . Wygod- nie jest doda¢ czwart¡ kolumn¦, w której zapiszemy iloraz cz¦±ciowy bie»¡cej (i + 1)szego wiersza powstaj¡ i − 1szego wiersza itego wiersza przemno»onego przez iloraz. Oblicz NWD(206, 174) i przedstaw wynik jako kombinacj¦ danych reszty przez poprzedni¡. Pierwsze trzy kolumny przez odj¦cie od Przykªad. liczb. Rozwi¡zanie. Zaczynamy od dwóch pierwszych wierszy tabeli a 206 174 α 1 0 β 0 1 Iloraz cz¦±ciowy 206 przez 174 jest równy 1. Mo»emy zapisa¢ go w dodatko- wej kolumnie drugiego wiersza i obliczy¢ trzeci wiersz jako ró»nice pierwszego i drugiego (pomno»onego przez iloraz). Post¦pujemy tak, a» do uzyskania w pierwszej kolumnie zera. a 206 174 32 14 4 2 0 α β q 1 0 − 0 1 1 1 −1 5 −5 6 2 11 −13 3 −38 45 2 − − − Przedostatni wiersz daje rozwi¡zanie NWD(206, 174) = 2 = (−38) · 206 + 45 · 174. 1.13 Liczby wzgl¦dnie pierwsze Denicja. Mówimy, »e liczby a i b s¡ wzgl¦dnie pierwsze wtedy i tylko wtedy, gdy NWD(a, b) = 1. Stwierdzenie. Liczby a i b s¡ wzgl¦dnie pierwsze wtedy i tylko wtedy, gdy α i β takie, »e αa + βb = 1. Dowód. Je±li NWD(a, b) = 1, to istnienie odpowiednich α i β wynika z twierdzenia 1.11. Na odwrót zaªó»my, »e αa + βb = 1 i niech d = NWD(a, b). Wówczas d | a i d | b, wi¦c d | αa + βb = 1. Ale jedynym dodatnim dzielnikiem jedynki jest liczba 1. St¡d d = 1, czyli a i b s¡ wzgl¦dnie pierwsze. istniej¡ liczby Prost¡ ale bardzo wa»n¡ ze wzgl¦du na zastosowania wªasno±¢ liczb wzgl¦dnie pierwszych streszcza nast¦puj¡cy lemat. Lemat. Je»eli c | ab i NWD(a, c) = 1, to 13 c | b. Dowód. Na podstawie twierdzenia 1.11 i zaªo»enia α i β , dla których α · a + β · c = 1. o a i c wiemy, »e istniej¡ liczby Mno»¡c t¦ równo±¢ stronami przez b, otrzymujemy α · (ab) + (βb)c = b. Oba skªadniki po lewej stronie s¡ podzielne przez c: pierwszy z zaªo»enia, drugi ze wzgl¦du na swoj¡ posta¢. A wi¦c caªa suma jest podzielna przez 2 c, czyli c | b. Liczby pierwsze 2.1 Denicja. Liczb¡ pierwsz¡ nazywamy liczb¦ naturaln¡, która ma dokªad- nie dwa dzielniki pierwsze. Powy»sza denicja mimo swej prostoty i zwi¦zªo±ci kryje pewne puªapki dla osób nieprzywi¡zuj¡cych wagi do precyzyjnego wysªawiania si¦. Zauwa»my, »e liczba 1 zgodnie z t¡ denicj¡ nie jest liczb¡ pierwsz¡, gdy» ma tylko jeden dzielnik naturalny. Liczby naturalne wi¦ksze od 1, które nie s¡ liczbami pierwszymi nazywa si¦ liczbami zªo»onymi. Twierdzenie. Ka»da liczba naturalna n>1 jest podzielna przez pewn¡ liczb¦ pierwsz¡. Dowód. Zastosujemy indukcj¦ wzgl¦dem n. Je±li n = 2, to jest liczb¡ pierw- sz¡. Poniewa» ka»da liczba dzieli sam¡ siebie, to twierdzenie jest prawdziwe dla wszystkich liczb pierwszych, a w szczególno±ci dla n = 2. Niech teraz n0 b¦dzie pewn¡ liczb¡ naturaln¡ wi¦ksz¡ od 2 i zaªó»my, »e twierdzenie jest prawdziwe 1 < n < n0 . Je»eli liczba n0 n0 . W przeciwnym razie n0 musi mie¢ dzielnik naturalny d ró»ny od 1 i od n0 . Wówczas zachodzi nierówno±¢ 1 < d < n0 , a wi¦c na mocy zaªo»enia istnieje liczba pierwsza p dziel¡ca d. Z przechodnio±ci relacji podzielno±ci liczba p jest te» dzielnikiem n0 . dla wszystkich liczb n speªniaj¡cych nierówno±ci jest pierwsza, to nasze twierdzenie jest prawdziwe dla 2.2 Sito Eratostenesa Twierdzenie 2.1 stanowi podstaw¦ prostego algorytmu znajdowania wszystkich liczb pierwszych nieprzekraczaj¡cych danej liczby n. Algorytm 2.1: Sito Eratostenesa n ≥ 2. DANE: Liczba WYNIK: Lista wszystkich liczb pierwszych 14 p ≤ n. n. 1. Sporz¡d¹ list¦ wszystkich liczb od 2 do 2. Je±li na li±cie brak niewykre±lonych liczb, zatrzymaj si¦. 3. Pierwsza niewykre±lona na li±cie liczba 4. Doª¡cz liczb¦ p p jest liczb¡ pierwsz¡. do listy wynikowej. p-t¡ 5. Wykre±l z listy co 6. Wró¢ do punktu 2. liczb¦, poczynaj¡c od p. Punkt 5. algorytmu cz¦sto formuªuje si¦ troch¦ inaczej: wielokrotno±ci p. wykre±l wszystkie Zauwa»my, »e tak postawione zadanie wymaga rozpoznania, które liczby s¡ wielokrotno±ciami p. Jest to zadanie do±¢ pracochªonne. W rzeczywisto±ci jednak wystarcza prosta arytmetyka na adresach. Uzasadnimy poprawno±¢ tego algorytmu. Po pierwsze zauwa»my, »e algo- rytm zawsze zatrzyma si¦, gdy» pomi¦dzy dwoma kolejnymi sprawdzeniami w punkcie 2. z listy zostaje usuni¦ta co najmniej jedna liczba. Poniewa» na pocz¡tku na li±cie jest n − 1 liczb, wi¦c po co najwy»ej n − 1 przebiegach algorytm zatrzyma si¦. Musimy jeszcze uzasadni¢, »e na li±cie wynikowej znajd¡ si¦ tylko liczby pierwsze i »e ka»da liczba pierwsza z zadanego przedziaªu znajdzie si¦ na li±cie, co pozostawiam jako ¢wiczenie. 2.3 Sito Eratostenesa pozwala nam (przynajmniej w teorii) znajdowa¢ wszyst- kie liczby pierwsze le»¡ce w z góry zadanym przedziale, ale nie daje informacji, czy liczb pierwszych jest sko«czenie czy niesko«czenie wiele. Twierdzenie. Liczb pierwszych jest niesko«czenie wiele. W historii matematyki podano wiele dowodów tego twierdzenia opartych na najró»niejszych pomysªach. Tutaj przytoczymy najstarszy dowód pochodz¡cy od Euklidesa (kilka ró»nych dowodów mo»na znale¹¢ w wartej polecenia ksi¡»ce Maªa ksi¦ga wielkich liczb pierwszych). Dowód. Zaªó»my przeciwnie, »e liczb pierwszych jest sko«czenie wiele i niech p1 , p2 , . . . , ps b¦d¡ wszystkimi liczbami pierwszymi. Utwórzmy liczb¦ N = p1 p2 · · · · · ps + 1. Na podstawie twierdzenia 2.1 liczba ta jest podzielna przez pewn¡ P. Ribenboima liczb¦ pierwsz¡, ale z zaªo»enia nasza lista zawiera wszystkie liczby pierwsze, st¡d istnieje numer p1 p2 · · · · · ps , wi¦c pi i, 1 ≤ i ≤ s, pi | N . Oczywi±cie pi dzieli te» iloczyn N − p1 p2 · · · · · ps = 1. Otrzymana sprzeczno±¢ taki »e dziel ró»nic¦ dowodzi faªszywo±ci naszego zaªo»enia. 2.4 Zasadnicze twierdzenie arytmetyki Twierdzenie. Ka»d¡ liczb¦ caªkowit¡ z 6= 0 mo»na przedstawi¢ w postaci z = ε · p1 p2 · · · · · ps , gdzie ε = ±1 jest znakiem liczby, s jest pewn¡ liczb¡ naturaln¡, a (3) p1 , p2 ,. . . ,ps pewnymi liczbami pierwszymi. Ka»de dwa takie przedstawienia ró»ni¡ si¦ co najwy»ej kolejno±ci¡ czynników. Podkre±lmy, »e twierdzenie zawiera dwie równie wa»ne tezy: istnienie rozkªadu i jego odpowiednio rozumian¡ jednoznaczno±¢. 15 Dowód. Istnienie: Indukcj¡ wzgl¦dem z poka»emy, »e ka»da liczba naturalna jest iloczynem pewnej ilo±ci liczb pierwszych. Je±li s = 0, z >1 Zaªó»my wi¦c, »e podzielne przez pewn¡ liczb¦ pierwsz¡ s = 1. przedstawienie postaci n, 1 < n < z , z Z twierdzenia 2.1 wiemy, »e z = p, to liczba z/p Je±li W przeciwnym wypadku speªniaj¡c¡ nierówno±¢ ps+1 = p. Jednoznaczno±¢: p. z to wystarczy przyj¡¢ i »e ka»da liczba naturalna iloczynem pewnej ilo±ci liczb pierwszych. stawienie z z = 1, jest jest mamy »¡dane przedjest liczb¡ naturaln¡ 1 < z/p < z , a wi¦c z zaªo»enia indukcyjnego ma ona z/p = p1 p2 . . . ps . Wówczas z = p1 p2 . . . ps · ps+1 , gdzie Zanim przejdziemy do dowodu jednoznaczno±ci rozkªadu, udo- p dzieli iloczyn liczb i = 1, 2, . . . , t. Ten fakt mo»na ªatwo udowodni¢ indukcj¡ wzgl¦dem t. Je±li t = 1, to zaªo»enie mówi nam, »e liczba p jest dzielnikiem liczby pierwszej q1 , a wi¦c p = q1 . Zaªó»my wi¦c indukcyjnie, »e fakt jest prawdziwy dla liczby t i niech p dzieli iloczyn liczb pierwszych q1 , q2 , . . . ,qt+1 . Je±li p = qt+1 , to nie ma czego dowodzi¢. W przeciwnym wypadku z pierwszo±ci liczb p i qt+1 wynika, »e NWD(p, qt+1 ) = 1. Lemat 2.1 implikuje wówczas p | q1 q2 · · · · · qt i »¡dany fakt wynika z zaªo»enia wodnimy nast¦puj¡cy fakt pomocniczy: je±li liczba pierwsza pierwszych q1 , q2 ,. . . ,qt , to p = qi dla pewnego indukcyjnego. Mo»emy teraz wróci¢ do dowodu jednoznaczno±ci. Na pocz¡tek zauwa»my, ε jest wyznaczony jednoznacznie jako znak liczby, wi¦c mo»emy ogra- »e czynnik niczy¢ si¦ do liczb naturalnych. Musimy pokaza¢, »e je±li p1 p2 · · · · · ps = q1 q2 · · · · · qt s i t oraz liczb s = t i z dokªadno±ci¡ do porz¡dku q1 , q2 , . . . , qs . Mo»na to zrobi¢ indukcj¡ (4) p1 , p2 , . . . , ps , q1 , q2 , . . . , qt , p1 , p2 , . . . , ps s¡ równe liczbom wzgl¦dem s. Je»eli s = 0, to iloczyn po lewej stronie równy jest 1. Gdyby zachodziªo t > 0, to iloczyn po prawej stronie byªby wi¦kszy od 1, co przeczyªoby równo±ci. St¡d s = t = 0. Zaªó»my wi¦c indukcyjnie, »e dla pewnego s zachodzi nast¦puj¡ca wªasno±¢: dla ka»dego t naturalnego i dla wszystkich liczb pierwszych p1 , . . . ,ps , q1 ,. . . qt , je±li p1 p2 · · · · · ps = q1 q2 · · · · · qt , to s = t i liczby p1 , . . . ,ps s¡ z dokªadno±ci¡ do porz¡dku równe liczbom q1 ,. . . qt . Niech p1 p2 · · · · · ps ps+1 = q1 q2 · · · · · qt . Wówczas ps+1 dla pewnych naturalnych pierwszych to liczby dzieli iloczyn po prawej stronie równo±ci i z udowodnionego faktu wynika, »e ps+1 = qi dla pewnego i. Obie strony równo±ci mo»emy teraz podzieli¢ przez wspólny czynnik, otrzymuj¡c tak¡ sytuacj¦, jak w zaªo»eniu indukcyjnym. 2.5 Zasadnicze twierdzenie arytmetyki stanowi podstaw¦ poprawno±ci szkol- nego algorytmu znajdowania najwi¦kszego wspólnego dzielnika. Sprowadza si¦ a i b, rozªo»y¢ je najpierw na a = p1 p2 · · · · · ps , b = q1 q2 · · · · · qt , a nast¦pnie obliczy¢ on do tego, aby maj¡c dane liczby naturalne czynniki pierwsze NWD(a, b) jako iloczyn wspólnych czynników. Na pierwszy rzut oka mo»e on wyda¢ si¦ prostszy od algorytmu Euklidesa, ale tak nie jest. W ogólnym przypadku rozkªad liczby na czynniki pierwsze jest bowiem zagadnieniem znacznie 16 NWD za pomoc¡ algorytmu Euklidesa. We¹my na a = 3127 i b = 2491. Prosz¦ spróbowa¢ obliczy¢ NWD(a, b) za pomoc¡ trudniejszym ni» obliczenie przykªad algorytmu szkolnego, nie zagl¡daj¡c do dalszej cz¦±ci tekstu. Natomiast u»ycie algorytmu Euklidesa wymaga zaledwie czterech dziele« z reszt¡, daj¡c wynik NWD(a, b) = 53. 2.6 Wiemy ju», »e liczby pierwsze tworz¡ niesko«czony ci¡g p1 = 2, p2 = 3, p3 = 5, p4 = 7, p5 = 11, p6 = 13, p7 = 17, . . . . Przyjrzyjmy si¦ rozkªadowi tych liczb w ci¡gu wszystkich liczb naturalnych. Para p1 = 2, p2 = 3 jest jak ªatwo pokaza¢ jedyn¡ par¡ liczb pierwszych, które ró»ni¡ si¦ o jeden. Wi¦cej jest par liczb pierwszych ró»ni¡cych si¦ o dwa. Liczby takie nazywa si¦ liczbami pierwszymi bli¹niaczymi. Matematycy znaj¡ wiele przykªadów takich par, w tym przykªady bardzo du»ych liczb pierwszych bli¹niaczych (cho¢ co mo»e wyda¢ si¦ pewnym zaskoczeniem do tej pory nie wiadomo, czy par takich jest sko«czenie, czy niesko«czenie wiele). Z drugiej strony mo»na ªatwo pokaza¢, »e dziury mi¦dzy dwoma kolejnymi liczbami pierwszymi mog¡ by¢ dowolnie du»e: dla dowolnej liczby naturalnej n ≥ 1 liczby (n + 1)! + 2, (n + 1)! + 3, (n + 1)! + 4, . . . , (n + 1)! + (n + 1) s¡ ci¡giem n kolejnych liczb naturalnych, w±ród których nie ma liczby pierwszej (dlaczego?). Na pierwszy rzut oka wydaje si¦ wi¦c, »e liczby pierwsze rozrzucone s¡ w ci¡gu liczb naturalnych w sposób do±¢ kapry±ny. Sytuacja ulega jednak zmianie, je±li przypatrze¢ si¦ dostatecznie du»ym przedziaªom liczb naturalnych. Fakt ten jako pierwszy zaobserwowaª na podstawie r¦cznych rachunków Carl Friedrich Gauss w roku 1793. przez π(x) Dla dowolnej liczby rzeczywistej ilo±¢ liczb pierwszych p nie wi¦kszych od Twierdzenie o g¦sto±ci liczb pierwszych (ang. lim x→∞ x oznaczmy x. Prime Number Theorem): π(x) = 1. x/ ln(x) Twierdzenie to zostaªo udowodnione dopiero w roku 1896. Dowód znalazªo niezale»nie od siebie dwóch matematyków: Francuz Jacques Hadamard i Belg Charles de la Vallée Poussin. Ich prace s¡ ukoronowaniem analitycznej teorii liczb w XIX w. (Analityczna teoria liczb bada liczby naturalne za pomoc¡ metod analizy zespolonej). Okoªo roku 1948 tak zwany elementarny dowód twierdzenia zostaª znaleziony znowu niezale»nie przez Norwega Atle Selberga i W¦gra Paula Erd®sa. Nale»y przy tym podkre±li¢, »e sªowo elementarny w tym kontek±cie nie oznacza ªatwy lecz niekorzystaj¡cy z teorii liczb zespolonych. Twierdzenie o g¦sto±ci mo»na interpretowa¢ nast¦puj¡co: dla dostatecznie x ln(x) jest dobrym przybli»eniem funkcji π(x). Daje to mo»liwo±¢ szybkiego oszacowania ilo±ci liczb pierwszych zawartych w dostatecznie du»ych x funkcja dªugich odcinkach prostej rzeczywistej. 17 x 3 x ln(x) π(x) 1 000 168 144.8 10 000 1 229 1 085.7 100 000 9 592 8 685.9 1 000 000 78 498 72 382.4 10 000 000 664 579 620 420.7 Kongruencje 3.1 Niech m b¦dzie dodatni¡ liczb¡ caªkowit¡. Denicja. Powiemy, »e liczba a przystaje do liczby b modulo m wtedy i tylko wtedy, gdy m | (a − b). W skrócie b¦dziemy pisa¢ a ≡ b (mod m). Przy ustalonym m przystawanie modulo m jest wi¦c pewn¡ relacj¡ na zbiorze liczb caªkowitych. Relacj¦ t¦ nazywa si¦ te» kongruencj¡. Uwaga. a mod m na oznaa ≡ b (mod m). S¡ to dwie Nie nale»y myli¢ wprowadzonego w 1.2 symbolu czenie reszty z symbolem zdeniowanej wy»ej relacji ró»ne rzeczy, cho¢ ±ci±le ze sob¡ zwi¡zane (zobacz pkt 7. poni»szego stwierdzenia). Podstawowe wªasno±ci kongruencji zebrali±my w postaci stwierdzenia. Stwierdzenie. 1. Dla dodatnich min oraz dowolnych mamy: a ≡ a (mod m); 2. je±li a ≡ b (mod m), 3. je±li a ≡ b (mod m) i b ≡ c (mod m), 4. je±li a ≡ b (mod m), to to b ≡ a (mod m); a ≡ b (mod m) i c ≡ d (mod m), ac ≡ bd (mod m); 6. je±li a ≡ b (mod m), a ≡ b (mod m) Wªasno±ci 1.-3. to to a ≡ c (mod m); a + c ≡ b + c (mod m) 5. je±li 7. a , b, c i d to je±li oraz ac ≡ bc (mod m); a + c ≡ b + d (mod m) oraz an ≡ bn (mod mn); wtedy i tylko wtedy, gdy a mod m = b mod m. mówi¡, »e kongruencja przy ustalonym module jest rela- cj¡ równowa»no±ci. Wªasno±ci 4.-5. mo»na podsumowa¢ jako pewnego rodzaju zgodno±ci tej relacji z dziaªaniami arytmetycznymi. Zauwa»my, »e wszystkie wªasno±ci 1.5. przysªuguj¡ te» równo±ci. Mo»emy wi¦c kongruencj¦ rozpatrywa¢ jako pewnego rodzaju uogólnienie równo±ci. 3.2 Osobne miejsce zajmuje dzielenie kongruencji przez wspólny czynnik. 18 Stwierdzenie. (b) Je±li Dowód. (a) Je±li ad ≡ bd (mod md) i d > 0, to a ≡ b (mod m). ad ≡ bd (mod m) i NWD(m, d) = 1, to a ≡ b (mod m). Cz¦±¢ (b) wynika z lematu 1.13. 3.3 Cechy podzielno±ci Jako przykªady zastosowania kongruencji podamy tzw. cechy podzielno±ci, czyli twierdzenia, które upraszczaj¡ rozstrzyganie, czy dana, najcz¦±ciej du»a liczba zapisana w systemie dziesi¦tnym dzieli si¦ przez m (lub w szerszym sensie, uªa- twiaj¡ znalezienie reszty z dzielenia takiej liczby przez m). Ograniczymy si¦ przy tym do kilku prototypowych przykªadów. Cecha podzielno±ci przez 2: s X ai · 10i ≡ a0 (mod 2), (5) i=0 lub sªownie: reszta z dzielenia liczby przez 2 jest taka sama jak reszta jej cyfry jedno±ci. Dowód. Mamy oczywi±cie 10 ≡ 0 (mod 2). Mno»¡c przez siebie odpo- 10i ≡ 0 (mod 2) dla i ≥ 1. i -tej kongruencji przez ai i dodaniu stronami, otrzymujemy Ps i i=1 ai · 10 ≡ 0 (mod 2). Dodanie do obu stron kongruencji a0 ko«czy dowód. wiedni¡ liczb¦ razy t¦ kongruencj¦, otrzymujemy Po przemno»eniu Cecha podzielno±ci przez 3 i przez 9: s X ai · 10i ≡ i=0 Dowód. Je±li m=3 s X Je±li ai m=3 lub m = 9, to (mod m). (6) i=0 10 ≡ 1 (mod m). Przemna»aj¡c t¦ kon10i ≡ 1 (mod m) dla i ≥ 1. Ale analogiczna i = 0. Wymna»aj¡c i-t¡ kongruencj¦ przez cyfr¦ lub 9, to mamy gruencj¦ stronami, otrzymujemy kongruencja zachodzi te» dla ai i dodaj¡c wszystkie kongruencje, otrzymujemy (6). Cecha podzielno±ci przez 11: s X ai · 10i ≡ i=0 Dowód. s X (−1)i ai (mod 11). (7) i=0 Dowód jest podobny do poprzedniego, z tym »e za punkt wyj±cia bierzemy kongruencj¦ 10 ≡ −1 (mod 11). Cecha podzielno±ci przez 7: (. . . a5 , a4 , a3 , a2 , a1 , a0 )10 ≡ ≡ (a2 , a1 , a0 )10 − (a5 , a4 , a3 )10 + (a8 , a7 , a6 )10 − . . . 19 (mod 7). (8) Dowód. Dowód wynika z kongruencji 1000 ≡ −1 (mod 7). 3.4 Arytmetyczne sumy kontrolne Rozpowszechnienie technik komputerowych w ró»nych dziedzinach »ycia (gospodarka, administracja, ochrona zdrowia itd.) nasiliªo tendencj¦ do identykowania najró»niejszych obiektów za pomoc¡ pewnych z góry przydzielonych im kluczynumerów. Wystarczy wspomnie¢ takie numery jak PESEL, NIP, REGON, numer dowodu rejestracyjnego pojazdu czy dowodu osobistego, numery rachunków bankowych i kart kredytowych. Numery te s¡ cz¦sto przetwarzane przy udziale czªowieka lub takich urz¡dze« jak czytniki kodów kreskowych i skanery pisma. Z tej racji nara»one s¡ na ró»nego rodzaju bª¦dy. Skutkom takich bª¦dów zapobiega pewien prosty, ale jak zo- baczymy do±¢ skuteczny mechanizm kontrolny: dopuszczalnym identykatorem mo»e by¢ jedynie numer speªniaj¡cy pewien prosty do sprawdzenia warunek. Warunek ten nale»y dobra¢ tak, aby cz¦sto pojawiaj¡ce si¦ bª¦dy powodowaªy jego zakªócenie, co umo»liwia wykrycie bª¦du. Zacznijmy od kilku przykªadów Przykªad 1. EAN (European Article Number) jest numerem identykuj¡cy towary sprzedawane w supermarkietach. Skªada si¦ z 13 cyfr, które oznaczymy (a1 , a2 , . . . , a13 ). przez Cyfry te s¡ drukowane za pomoc¡ kodu kreskowego na opakowaniach jednostkowych. Pierwszych dwana±cie cyfr koduje m.in. kraj producenta, producenta towaru oraz towar. Ostatnia cyfra jest dobierana tak, aby 1 · a1 + 3 · a2 + 1 · a3 + 3 · a4 + · · · + 3 · a12 + 1 · a13 ≡ 0 (mod 10). Zauwa»my, »e nie ma dwóch ró»nych numerów EAN, które ró»ni¡ si¦ na do- (a1 , a2 , . . . , ai , . . . , a13 ) (a1 , a2 , . . . , a0i , . . . , a13 ) s¡ dwoma dopuszczalnymi numerami EAN. Wóczas kªadnie jednym miejscu. Aby to zobaczy¢, zaªó»my »e oraz zachodz¡ nast¦puj¡ce kongruencje: a1 + 3a2 + . . . +wi ai +· · · + a13 a1 + 3a2 + . . . +wi a0i +· · · + a13 gdzie w1 ≡ 0 (mod 10) ≡ 0 (mod 10), jest równe 1 lub 3 w zale»no±ci od parzysto±ci liczby i. Odejmuj¡c kongruencje stronami, otrzymujemy wi (ai − a0i ) ≡ 0 Poniewa» wi jest wzgl¦dnie pierwsze z moduªem nami podzieli¢ przez wi , ai oraz a0i 10, mo»emy kongruencj¦ stro- co daje ai − a0i ≡ 0 Ale (mod 10). (mod 10). −9 i 9 . Jedyn¡ w tym przedziale jest liczba 0, co oznacza, »e ai = a0i s¡ cyframi, wi¦c ich ró»nica zawiera si¦ pomi¦dzy liczb¡ podzieln¡ przez 10 i rozpatrywane numery s¡ identyczne. Udowodniona wªasno±¢ gwarantuje nam, »e je±li przy przetwarzaniu numeru EAN pomylimy si¦ na jednej pozycji, to 20 otrzymany numer nie b¦dzie prawidªowym numerem EAN i bª¡d taki zostanie wykryty przy sprawdzaniu warunku kontrolnego. Przykªad 2. 10znakowym ISBN (International Standard Book Number) jest numerem nadawanym ksi¡»kom. Pierwszych macje o wydawcy i tytule. Ostatni znak 10) przypiszemy warto±¢ liczbow¡ b10 9 znaków to cyfry nios¡ce infor- to cyfra lub symbol X (któremu i jest on dobierany w ten sposób, aby zacho- dziªa kongruencja b1 + 2b2 + 3b3 + · · · + 9b9 + 10b10 ≡ 0 (mod 11). Podobnie jak dla numeru EAN mo»na pokaza¢, »e ten mechanizm kontrolny pozwala wykry¢ dowolny bª¡d polegaj¡cy na przekªamaniu pojedynczego znaku. Jest tak»e odporny na inny cz¦sty bª¡d pojawiaj¡cy si¦ przy przetwarzaniu dªugich ci¡gów znaków przy udziale czªowieka. Mowa tu o tzw. bª¦dzie czeskim polegaj¡cym na przestawieniu dwóch s¡siednich znaków (na przykªad, gdy kto± zamiast . . . 27 . . . czyta . . . 72 . . . ). Wi¦kszo±¢ stosowanych w takich sytuacjach mechanizmów kontrolnych podpada pod schemat wa»onej sumy kontrolnej, który mo»na abstrakcyjnie opisa¢ tak. Ustalamy pewien moduª m i liczba C (najcz¦±ciej C = 0) oraz alfabet (czyli zbiór znaków, z których b¦dziemy tworzy¢ numery). Ka»da litera alfabetu ma swoj¡ warto±¢ liczbow¡ b¦d¡c¡ reszt¡ z dzielenia przez m, przy czym zakªadamy, »e ró»nym literom odpowiadaj¡ ró»ne reszty. W dalszym ci¡gu b¦dziemy uto»samia¢ liter¦ z jej warto±ci¡ liczbow¡. Ponadto ustalmy pewien ci¡g liczb w1 , w2 , . . . zwanych wagami. B¦dziemy mówi¢, »e numer (a1 , a2 , . . . , an ) speªnia warunek kontrolny, gdy w1 a1 + w2 a2 + · · · + wn an ≡ C (mod m). Nietrudno udowodni¢, »e i 1. je±li dla wszystkich wagi wi s¡ wzgl¦dnie pierwsza z moduªem m, to mechanizm kontrolny wykrywa ka»de przekªamanie pojedynczego znaku; 2. je±li dla wszystkich i ró»nica wag wi+1 − wi jest wzgl¦dnie pierwsza z m, to system wykrywa ka»dy pojedynczy bª¡d czeski. Przykªad 3. Od pewnego czasu w Polsce obowi¡zuje system numeracji kont bankowych zgodny ze standardem IBAN (International Bank Account Number). Numer konta jest liczb¡ 26cyfrow¡. Na przykªad 35 1010 1010 0070 5422 2100 0000 jest numerem jednego z kont Urz¦du Skarbowego w Toruniu. Ogólnie ka»dy numer mo»na zapisa¢ w postaci k1 k2 b1 b2 b3 b4 b5 b6 b7 b8 n1 n2 n3 n4 n5 n6 n7 n8 n9 n10 n11 n12 n13 n14 n15 n16 , gdzie k1 k2 s¡ tak zwanymi cyframi kontrolnymi, cyfry oraz jego oddziaª, a cyfry od nim oddziale banku. n1 do n16 b1 do b8 identykuj¡ bank koduj¡ numer rachunku w odpowied- Na zewn¡trz polskiego systemu bankowego numer taki 21 poprzedza si¦ literami PL identykuj¡cymi nasz kraj, co daje napis postaci PL k1 k2 b1 b2 b3 b4 b5 b6 b7 b8 n1 n2 n3 n4 n5 n6 n7 n8 n9 n10 n11 n12 n13 n14 n15 n16 . Aby sprawdzi¢ formaln¡ poprawno±¢ takiego numeru, nale»y 1. pierwsze dwie grupy znaków (tj. PL k1 k2 przenie±¢ w niezmienionej kolej- no±ci na koniec: w naszym przykªadzie daje to 1010 1010 0070 5422 2100 0000 PL 35; 2. zast¡pi¢ wszystkie litery ich kodami liczbowymi w ten sposób, »e kolejnym literom od A do Z alfabetu angielskiego odpowiadaj¡ warto±ci od 10 do 35; PL napisem dla polskiego numeru rachunku oznacza to zast¡pienie napisu 2521 (w niektórych krajach numer rachunku bankowego mo»e zawiera¢ oprócz cyfr tak»e litery, algorytm sprawdzania poprawno±ci jest jednak taki sam dla wszystkich krajów obj¦tych systemem); 3. otrzymany napis potraktowa¢ jako przedstawienie dziesi¦tne liczby naturalnej; w naszym przykªadzie otrzymujemy wi¦c liczb¦ 30-cyfrow¡ 101 010 100 070 542 221 000 000 252 135; 4. uzna¢ numer za poprawny, je±li liczba ta przy dzieleniu przez 97 daje reszt¦ 1. atwo zobaczy¢, »e (przynajmniej w odniesieniu do numerów kont obowi¡zuj¡cych w Polsce) powy»szy schemat formalnej poprawno±ci numeru jest wa»on¡ sum¡ kontroln¡ w opisanym wy»ej sensie. 4 Kongruencje z niewiadom¡ i chi«skie twierdzenie o resztach 4.1 Zacznijmy od najprostszej kongruencji z niewiadom¡ x: x ≡ b (mod m). Z denicji liczba od b x speªnia t¦ kongruencj¦ wtedy i tylko wtedy, gdy o pewn¡ wielokrotno±¢ m (9) x ró»ni si¦ tzn. zbiór rozwi¡za« jest równy {b + km|k ∈ Z}. Zauwa»my, »e w zbiorze tym jest dokªadnie jedna reszta z dzielenia przez Jest ni¡ liczba x0 = b mod m. 22 m. 4.2 Troch¦ bardziej skomplikowan¡ sytuacj¦ mamy dla kongruencji ax ≡ b (mod m). (10) Zauwa»my, »e je»eli kongruencja (10) ma rozwi¡zanie, to NWD(a, m) | b. Je±li ten warunek jest speªniony, to kongruencja (10) jest równowa»na kongruencji a0 x ≡ b0 (mod m0 ), a0 = a/d, b0 = b/d, m0 = m/d, d = NWD(a, m), a w szczególno±ci NWD(a0 , m0 ) = 1. W dalszym ci¡gu wystarczy si¦ wi¦c zaj¡¢ kongruencj¡ (10) przy zaªo»eniu, »e wspóªczynnik a i moduª m s¡ wzgl¦dnie pierwsze. Wówczas istniej¡ takie liczby α i µ, »e gdzie αa + µm = 1. Co wi¦cej, liczby te mo»emy efektywnie znale¹¢, wykonuj¡c rozszerzony algorytm Euklidesa dla a i m. Poniewa» kongruencj¦ (10) stronami przez α, αa ≡ 1 (mod m), wi¦c przemna»aj¡c otrzymujemy kongruencj¦ x ≡ bα (mod m), któr¡ mo»emy rozwi¡za¢ analogicznie jak zrobili±my to dla kongruencji (9). W istocie otrzymana kongruencja jest równowa»na kongruencji (10) (bo przemna»aj¡c j¡ stronami przez a, powracamy do (10)). 4.3 Chi«skie twierdzenie o resztach dla dwóch moduªow Rozwa»my teraz ukªad dwóch kongruencji Twierdzenie. liczb a1 i a2 x ≡ x ≡ Je»eli moduªy m1 a1 a2 i m2 (mod m1 ), (mod m2 ). (11) s¡ wzgl¦dnie pierwsze to dla dowolnych ukªad (11) jest niesprzeczny. Ma on dokªadnie jedno rozwi¡zanie b¦d¡ce reszt¡ modulo m1 m2 . x0 Ka»de inne rozwi¡zanie ró»ni si¦ od rozwi¡zania x0 o pewn¡ wielokrotno±¢ iloczynu m1 m2 . Dowód. Wyka»emy najpierw niesprzeczno±¢ ukªadu, wskazuj¡c pewne jego rozwi¡zanie. Ze wzgl¦dnej pierwszo±ci liczb m1 i m2 wynika, »e istniej¡ liczby µ1 i µ2 , dla których µ1 m1 + µ2 m2 = 1. Mno»¡c powy»sz¡ równo±¢ stronami odpowiednio przez równo±ci a1 µ1 m1 + a1 µ2 m2 = a1 , a2 µ1 m1 + a2 µ2 m2 = a2 . 23 a1 oraz a2 , otrzymujemy Pierwsza z równo±ci mówi nam, »e liczba lokrotno±¢ liczby m1 , a1 µ2 m2 ró»ni si¦ od Oczywi±cie dodaj¡c do tej liczby dowoln¡ wielokrotno±¢ otrzymamy rozwi¡zanie pierwszej kongruencji. ±ci wynika, »e liczba a1 o pewn¡ wie- a wi¦c jest rozwi¡zaniem pierwszej z kongruencji w (11). a2 µ1 m1 m1 , w dalszym ci¡gu Analogicznie z drugiej równo- jest rozwi¡zaniem drugiej kongruencji i dodaj¡c m2 , znowu otrzymamy rozwi¡zanie a2 µ1 m1 + a1 µ2 m2 jest wspólnym rozwi¡zaniem do tego rozwi¡zania dowoln¡ wielokrotno±¢ drugiej kongruencji. St¡d suma obu kongruencji. Oczywi±cie liczba x0 = a2 µ1 m1 + a1 µ2 m2 mod m1 m2 te» jest rozwi¡zaniem. x0 i x00 s¡ dwoma rozwi¡zaniami ukªadu (11), to ró»ni¡ si¦ o pewn¡ wielokrotno±¢ iloczynu m1 m2 . Odej0 00 muj¡ od siebie stronami kongruencje x ≡ a1 (mod m1 ) i x ≡ a1 (mod m1 ), 0 00 0 00 otrzymujemy x − x ≡ 0 (mod m1 ), czyli x − x = km1 dla pewnego k ∈ Z. 0 00 Analogicznie odejmuj¡c drugie kongruencje, mamy x − x ≡ 0 (mod m2 ), czyli 0 00 m2 | x − x = km1 . Ale z zaªo»enia m1 i m2 s¡ wzgl¦dnie pierwsze, wi¦c m2 0 0 0 00 0 dzieli k i k = k m2 dla pewnego k ∈ Z. St¡d x − x = k m1 m2 . Dla zako«czenia dowodu wystarczy pokaza¢, »e je±li Zauwa»my, »e dowód daje nam w istocie algorytm rozwi¡zania ukªadu (11). Najbardziej pracochªonn¡ cz¦±ci¡ tego algorytmu jest rozszerzony algorytm Euklidesa dla pary (m1 , m2 ). Wiedz¡c, »e ukªad (11) jest równowa»ny kongruencji z moduªem m1 m2 , mo»na zastosowa¢ inn¡ strategi¦ znalezienia rozwi¡zania ukªadu. Mno»¡c (we- m2 , a drug¡ dªug wzoru z punktu 6 stwierdzenia 3.1) pierwsz¡ kongruencj¦ przez przez m1 i odejmuj¡c stronami, otrzymujemy (m2 − m1 )x ≡ a1 m2 − a2 m1 Zauwa»my, »e wzgl¦dna pierwszo±¢ liczb m1 , m1 m2 ) = 1, m1 (mod m1 m2 ). i m2 gwarantuje, »e NWD(m2 − a wi¦c powy»sza kongruencja ma rozwi¡zanie. Rozwi¡zanie to jest rozwi¡zaniem ukªadu (11). 4.4 Ogólna posta¢ chi«skiego twierdzenia o resztach Twierdzenie. Je»eli liczby m1 , m2 , . . . , ms s¡ parami wzgl¦dnie dla dowolnych pierwsze, to a1 , a2 , . . . , as ukªad kongruencji x ≡ a1 (mod m1 ), x ≡ a2 (mod m2 ), ...................... x ≡ as (mod ms ). jest niesprzeczny. Ukªad ma dokªadnie jedno rozwi¡zanie m1 m2 . . . ms . m1 m2 . . . ms . modulo iloczyn krotno±¢ (12) ...................... x0 , które jest reszt¡ Ka»de inne rozwi¡zanie ró»ni si¦ od 24 x0 o wielo- Opieraj¡c si¦ na wersji chi«skiego twierdzenia o resztach dla dwóch kongruencji mo»na udowodni¢ twierdzenie, stosuj¡c indukcj¦ wzgl¦dem s. 4.5 Maªe twierdzenie Fermata Twierdzenie. Je»eli p jest liczb¡ pierwsz¡, a a liczb¡ niepodzieln¡ przez p, to ap−1 ≡ 1 Dowód. Niech Poniewa» p (mod p). (13) Z∗p b¦dzie zbiorem niezerowych reszt modulo p. Rozpatrzmy ∗ ∗ odwzorowanie fa : Zp → Zp dane wzorem fa (x) = ax mod (p). Poka»emy 0 najpierw, »e odwzorowanie fa jest ró»nowarto±ciowe. Je±li bowiem fa (x ) = 00 fa (x ), to ax0 ≡ ax00 (mod p). jest liczb¡ pierwsz¡ i p nie dzieli a, wi¦c aip i powy»sz¡ kongruencj¦ mo»emy podzieli¢ stronami przez x0 ≡ x00 a poniewa» x0 i x00 Odwzorowanie (1, 2, . . . , p − 1) St¡d p, wi¦c mamy równo±¢. jest ró»nowarto±ciowym odwzorowaniem zbioru sko«czo- nego w siebie, wi¦c jest bijekcj¡ ci¡g ci¡gu a. (mod p), s¡ resztami modulo fa s¡ wzgl¦dnie pierwsze (fa (1), fa (2), . . . , fa (p − 1)) ró»ni si¦ od jedynie kolejno±ci¡ wyrazów. W szczególno±ci fa (1) · fa (2) · · · · · fa (p − 1) = 1 · 2 · · · · · (p − 1). Z drugiej strony fa (1) · fa (2) · · · · · fa (p − 1) ≡ (1a) · (2a) · · · · · (a(p − 1)) = ap−1 · 1 · 2 · · · · · (p − 1), gdzie ≡ oznacza przystawanie modulo p. Porównuj¡c oba wyra»enia, mamy ap−1 · 1 · 2 · · · · · (p − 1) ≡ 1 · 2 · · · · · (p − 1) Poniewa» reszty 1, 2,. . . ,p−1 s¡ wzgl¦dnie pierwsze z (mod p). p, wi¦c kongruencj¦ mo»na stronami podzieli¢ przez ich iloczyn, co daje tez¦. 4.6 Kryptosystem RSA Pod koniec lat 70-tych ubiegªego wieku D. Rivest, Shamir i Adleman zaproponowani nast¦puj¡cy sposób szyfrowania wiadomo±ci. Wybierzmy dwie ró»ne i du»e liczby pierwsze p i q (obecnie uwa»a si¦, »e dla bezpiecze«stwa systemu ka»da z nich powinna mie¢ w zapisie dwójkowym co naj- n = pq . Wybierzmy ponadto liczb¦ e wzgl¦dnie pierwsz¡ (p − 1)(q − 1). Para (n, e) tworzy tak zwany klucz publiczny kryp- mniej 512 cyfr) i niech z iloczynem tosystemu: mo»emy tak¡ par¦ ogªosi¢ publicznie (np. umie±ci¢ na naszej stronie domowej w Internecie). Ka»dy zainteresowany mo»e teraz przekaza¢ nam zaszyfrowan¡ wiadomo±¢, któr¡ jedynie my b¦dziemy w stanie odczyta¢. Zaªó»my, »e wiadomo±ci b¦d¡ resztami modulo n 25 (jakkolwiek z pozoru takie zaªo»enie mo»e wyda¢ si¦ dziwne i nienaturalne, to pami¦tajmy, »e ka»da wiadomo±¢ tekstowa, a nawet obraz czy d¹wi¦k w postaci elektronicznej jest jedynie ci¡giem bitów, który mo»emy potraktowa¢ jako rozwini¦cie dwójkowe liczby naturalnej; »¡danie aby to byªa reszta, ogranicza jedynie dªugo±¢ wiadomo±ci). Szyfrowanie wiadomo±ci a za pomoc¡ klucza (n, e) polega na obliczeniu s = ae mod n. (14) Aby odszyfrowa¢ tak¡ wiadomo±¢, musimy przygotowa¢ sobie tak zwany klucz tajny. Poniewa» k, NWD(e, (p − 1)(q − 1)) = 1, wi¦c istniej¡ liczby naturalne d i dla których ed − k(p − 1)(q − 1) = 1. (15) Co wi¦cej, liczby te mo»emy efektywnie obliczy¢, stosuj¡c rozszerzony algorytm Euklidesa. Klucz tajny stanowi para (n, d), a odszyfrowanie polega na obliczeniu sd mod n. (16) Dlaczego prowadzi to do odtworzenia wiadomo±ci a? Zauwa»my najpierw, »e sd ≡ (ae )d = aed = a1+k(p−1)(q−1) , gdzie ≡ n. p i q s¡ ró»nymi a ∈ Z i k ∈ N zachodzi oznacza kongruencj¦ modulo Stwierdzenie. dowolnych Je»eli liczbami pierwszymi i n = pq , to dla a1+k(p−1)(q−1) ≡ a (mod n). Dowód. Zaªó»my na razie, »e liczba a p. Wówczas z k(q − 1), a nast¦pnie jest niepodzielna przez maªego twierdzenia Fermata ap−1 equiv1 (mod p). Podnosz¡c kongruencj¦ stronami do pot¦gi o wykªadniku przemna»aj¡c przez a, otrzymujemy a1+k(p−1)(q−1) ≡ a (mod p). a jest podzielna przez p, to po obu stronach kongruencji mamy liczb¦ p, a wi¦c kongruencja zachodzi w rzeczywisto±ci dla wszystkich liczb caªkowitych a. Tak samo mo»emy dowie±¢ analogicznej kongruencji modulo q . Poniewa» p i q jako ró»ne liczby pierwsze s¡ wzgl¦dnie pierwsze, wi¦c przystawanie modulo p i q implikuje przystawanie modulo n = pq . Je±li liczba podzieln¡ przez Stwierdzenie dowodzi, »e najpierw szyfruj¡c wiadomo±¢ a kluczem publicz- nym, a nast¦pnie deszyfruj¡c j¡ kluczem prywatnym, otrzymujemy z powrotem a. Znacznie subtelniejsza jest kwestia bezpiecze«stwa systemu i peªne rozwa- »enie jej wymaga obszernych wiadomo±ci z algorytmicznej teorii liczb, a wi¦c znacznie wykracza poza zakres tych notatek. Ujmuj¡c rzecz do±¢ pobie»nie, bezpiecze«stwo zasadza si¦ na trudno±ci rozªo»enia liczby 26 n na czynniki pierwsze.