4. Eulerin ja Fermat'n lauseet 4.1 Alkuluokka ja Eulerin φ-funktio Yleensä olemme kiinnostuneita vain niistä jäännösluokista modulo m, joiden alkiot ovat suhteellisia alkulukuja luvun m kanssa. Näiden luokkien lukumäärä esitetään Eulerin φ-funktion arvona. Määritelmä 4.1 Jäännösluokka [a] (mod m) on alkuluokka (mod m), jos syt(a, m) = 1. Kaikkien alkuluokkien (mod m) joukolle käytetään merkintää Z m *. Siis Z m * = {[a] Z m syt(a, m) = 1}. Määritelmä 4. Eulerin φ-funktio (Euler's Totient Function) antaa arvonaan kokonaisluvun φ(m) = card( { 0 i < m syt(i, m) = 1 } ). Siis φ(m) ilmaisee, montako luvuista 0, 1,..., m - 1 on suhteellisia alkulukuja luvun m suhteen, ts. φ(m) on joukon Z m * alkioiden lukumäärä. Itse asiassa, aina kun m, luvun 0 voi jättää pois (syt(0, m) = m) ja tarkastella vain lukuja 1,..., m - 1. Huomaa, että φ(1) = card( { 0 i < 1 syt(i, 1) = 1 } ) = 1, koska syt(0,1) = 1. Vastaavasti φ(0) = card( {} ) = 0. Mathematicalla φ(m) voidaan laskea EulerPhi[m] -funktion avulla. Esimerkiksi m = 15; EulerPhi[m] 8 Vastaavat suhteelliset alkuluvut luvun m = 15 kanssa ovat: 1,, 4, 7, 8, 11, 13 ja 14. Myöhemmin näemme, kuinka funktio φ(m) voidaan efektiivisesti laskea. Lause 4.1 Kaikille positiivisille kokonaisluvuille m on voimassa: d m φ(d) = m. Merkintä d m φ(d) tarkoittaa yllä sitä, että muodostetaan jokaiselle luvun m jakajalle, ts. m:n tekijälle, arvo φ(d) ja lasketaan kaikkien näin saatujen arvojen φ(d) summa. Tarkastellaan vielä esimerkin avulla, mitkä kokonaisluvuista välillä [1, m] ovat niitä, jotka tuottavat Lauseen 4.1 summaan ko. termin φ(d), missä d m. Olkoon m = 15. Tällöin jakajat ovat 1, 3, 5 ja 15. Ne kahdeksan lukua (huom. φ(15) = 8), joiden suurin yhteinen tekijä luvun 15 kanssa on 1, ovat 1,, 4, 7, 8, 11, 13 ja 14. Neljällä ( = φ(5)) luvulla (3, 6, 9, 1) on syt = 3 (luvun 15 kanssa), kahdella ( = φ(3)) luvulla (5, 10) on syt = 5 ja yhdellä ( = φ(1)) luvulla (0) on syt = 15. Siis tässä d m φ(d) = φ(15) + φ(5) + φ(3) + φ(1) = φ(1) + φ(3) + φ(5) + φ(15)
Salakirjoitus = 1 + + 4 + 8 = 15. Lauseen 4.1 Todistus (1. tapa lyhyt, mutta kunnon keskittymistä vaativa tarkastelu): On siis osoitettava, että d m φ(d) = m aina kun m Z +. Oletetaan, että d m. Kirjoittamalla r = i d näemme, että niiden kokonaislukujen r, 0 r < m, missä syt(r, m) = d, lukumäärä on sama kuin lukujen i, missä 0 i < m ja syt i, m = 1, lukumäärä. Tämä luku on d d Määritelmän 4. mukaan φ m. d Toisaalta, d = syt(r, m) m kaikilla kokonaisluvuilla r, 0 r < m. Siis d m φ m = m. Tämä on ekvivalenttia sen d kanssa, mikä oli todistettavana. Todistus (. tapa pitempi, mutta tarkka ja ehkä valaiseva perustelu): Olkoon S = { (d, f) d m, 1 f d, syt(f, d) = 1 }. Esimerkiksi tapauksessa m = 1 joukkoa S esittää seuraava taulukko, jossa viimeiset numerot rivissä d tarkoittavat niiden lukujen f lukumäärää väliltä 1 f d, joille syt(f, d) = 1, ts. kyseessä ovat arvot φ(d). d \ f 1 3 4 5 6 7 8 9 10 11 1 φ(d) --- - - - - - - - - - - - - ---- 1 1 1 6 1 3 4 8 4 3 9 6 10 1 1 5 7 11 4 --- - - - - - - - - - - - - - - ---- 1 Tapauksessa m = 15 joukkoa S esittää taulukko: d \ f 1 3 4 5 6 7 8 9 10 11 1 13 14 15 φ(d) --- - - - - - - - - - - - - - - - ---- 1 15 1 3 5 10 5 3 6 9 1 4 15 1 4 7 8 11 13 14 8 --- - - - - - - - - - - - - - - - - - ---- 15 Joukon S määrittelyn nojalla S = d m φ(d). Lauseen 4.1 todistamiseksi tulee osoittaa, että S = m. (Huom. S card(s)) Konstruoidaan bijektio β: S N m, missä N m = {1,,..., m}. Olkoon pari (d, f) S annettu. Määritellään β(d, f) = f m / d.
Salakirjoitus 3 Yllä olevassa taulukossa rivin d ja sarakkeen f risteyksessä oleva luku on nimenomaan tämä β(d, f). Koska d m, niin arvot β(d, f) ovat kokonaislukuja. Lisäksi β(d, f) N m, koska 1 f d. Osoitetaan, että β: S N m on injektio. Olkoon β(d, f) = β( d', f' ). Tällöin f m / d = f' m / d', josta saadaan f d' = f' d. Koska f ja d ovat suhteellisia alkulukuja, samoin kuin f' ja d', nähdään, että d = d' ja f = f'. Siten β on injektio. Osoitetaan, että β: S N m on surjektio. Olkoon x N m annettu. Olkoon g x = syt(x, m) ja olkoon d x = m/g x, f x = x/g x. Selvästi d x ja f x ovat suhteellisia alkulukuja, muutoin on olemassa kokonaisluku k, jolle k d x ja k f x, ts. m k g x ja x k g x N +, ts. (k g x ) m ja (k g x ) x, mikä on ristiriita sen kanssa, että k g x > g x = syt(x, m). Siis β(d x, f x ) = f x m d x = f x m (m/g x ) = f x g x = x. Näin ollen β on surjektio. Kaiken kaikkiaan β: S N m on bijektio, joten S = m. Näin ollen Lause 4.1 on tosi. Harjoituksia 4 Määritä alkuluokat modulo m, ts. joukon Z m * alkiot sekä φ(m) tapauksissa m = 7 ja m = 1. Laske myös φ(46), φ(55), φ(81) ja φ(144). Lauseen 4.1 todistuksen (. tapa) taulukkoihin liittyviä laskelmia Mathematicalla (tämän Kappaleen 4.1. loppuosan voi halutessaan myös ohittaa) Clear[myBeta, mybetawithgcdtest]; mybeta[f_, d_, m_] := f * m / d; mybetawithgcdtest[f_, d_, m_] := If[GCD[f, d] 1 f d, mybeta[f, d, m], " "]
Salakirjoitus 4 m = 15; d = 1; Print["d = ", d]; Table[{f, mybetawithgcdtest[f, d, m]}, {f, 1, d}] d = 1 ( 1 15 ) m = 15; d = 3; Print["d = ", d]; Table[{f, mybetawithgcdtest[f, d, m]}, {f, 1, m}] // Transpose d = 3 1 3 4 5 6 7 8 9 10 11 1 13 14 15 5 10 m = 15; d = 5; Print["d = ", d]; Table[{f, mybetawithgcdtest[f, d, m]}, {f, 1, m}] // Transpose d = 5 1 3 4 5 6 7 8 9 10 11 1 13 14 15 3 6 9 1
Salakirjoitus 5 m = 15; d = 15; Print["d = ", d]; Table[{f, mybetawithgcdtest[f, d, m]}, {f, 1, m}] // Transpose d = 15 1 3 4 5 6 7 8 9 10 11 1 13 14 15 1 4 7 8 11 13 14 m = 1; Clear[h]; Join [{{"d\\f", ":", Range[m]} // Flatten}, {Table[, {m + }]}, Table[If[Mod[m, d] 0, {d, ":", Table[{myBetaWithGCDTest[f, d, m]}, {f, 1, m}]}, h[]] // Flatten, {d, 1, m}] // DeleteCases[#, _h] &] d\f : 1 3 4 5 6 7 8 9 10 11 1 1 : 1 : 6 3 : 4 8 4 : 3 9 6 : 10 1 : 1 5 7 11 Clear[myTableForPhi]; mytableforphi[m_] := ( Clear[h]; Join [{{"d\\f", ":", Range[m]} // Flatten}, {Table[, {m + }]}, Table[If[Mod[m, d] 0, {d, ":", Table[ {mybetawithgcdtest[f, d, m]}, {f, 1, m}]}, h[]] // Flatten, {d, 1, m}] // DeleteCases[#, _h] &])
Salakirjoitus 6 mytableforphi[15] d\f : 1 3 4 5 6 7 8 9 10 11 1 13 14 15 1 : 15 3 : 5 10 5 : 3 6 9 1 15 : 1 4 7 8 11 13 14 mytableforphi[5] d\f : 1 3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 18 19 0 1 : 5 5 : 5 10 15 0 5 : 1 3 4 6 7 8 9 11 1 13 14 16 17 18 19 mytableforphi[13] d\f : 1 3 4 5 6 7 8 9 10 11 1 13 1 : 13 13 : 1 3 4 5 6 7 8 9 10 11 1 Seuraava Mathematican perusfunktioista rakennettu funktio laskee yhteen funktion f arvot f [d], missä d käy läpi kaikki ne arvot, jotka jakavat annetun luvun m. (@@ on lyhennysmerkintä funktiosta Apply ja funktiosta Map (multiply apply)) DivisorSum[f_, m_] := Plus @@ (f /@ Divisors[m]) Testataan tämän funktion avulla Lausetta 4.1. m = 15; DivisorSum[EulerPhi, m] 15 4. Supistettu jäännössysteemi Määritelmä 4.3 φ(m) kokonaisluvun muodostama joukko {r 1, r,, r φ(m) } on supistettu jäännössysteemi (reduced residue system) modulo m, jos jokainen kokonaisluku j, jolle syt( j, m) = 1, on kongruentti (täsmälleen) yhden luvun r i kanssa (1 i φ(m)).
Salakirjoitus 7 Supistettu jäännössysteemi voidaan helposti generoida seuraavien funktiomäärittelyjen avulla: CoPrimeQ[n_Integer, m_integer] := GCD[n, m] == 1 CoPrimeQ[36, 91] True CoPrimeQ[35, 91] False Todellakin yllä 7 35 ja 7 91. CoPrimes[n_Integer?Positive] := Select[ Range[n], CoPrimeQ[n, #] & ] CoPrimes[15] {1,, 4, 7, 8, 11, 13, 14} Saatu joukko on supistettu jäännössysteemi modulo 15. Lemmaa 3. vastaavasti saadaan seuraava tulos: Lemma 4. Olkoon {r 1, r,, r ϕ(m) } supistettu jäännössysteemi modulo m ja olkoon syt(a, m) = 1. Tällöin {a r 1, a r,, a r ϕ(m) } on myös supistettu jäännössysteemi modulo m. Tämän lemman avulla voidaan helposti todistaa, että supistetun jäännössysteemin jäännösluokat muodostavat ryhmän kertolaskun suhteen (multiplicative group). 4.3 Eulerin ja Fermat'n lauseet Lause 4.3 Eulerin lause Olkoot kokonaisluvut a ja m suhteellisia alkulukuja. Tällöin a φ(m) 1 (mod m). Voimme helposti tarkistaa tämän paikkansapitävyyttä konkreettisissa tapauksissa: m = 1 345; a = 11 111; GCD[m, a] EulerPhi[m] Mod[a^EulerPhi[m], m]
Salakirjoitus 8 1 6576 1 Eksponentteihin korotukset modulo joku kokonaisluku voidaan suorittaa paljon nopeammin käyttämällä Mathematican PowerMod[a, b, m] -funktiota, joka käyttää mahdollisimman vähän sisäisiä askelia laskiessaan a b modulo m: m = 13 456 789; a = 1 111 111 111; GCD[m, a] PowerMod[a, EulerPhi[m], m] 1 1 Lauseen 4.3 Todistus: Olkoon {r 1, r,, r φ(m) } supistettu jäännössysteemi modulo m. Lemman 4. nojalla r 1 r r φ(m) (a r 1 ) (a r ) a r φ (m) = a φ(m) r 1 r r φ(m) (mod m). Koska jokainen tekijä r i on suhteellinen alkuluku luvun m suhteen, voidaan Lauseen 3.3 kohdan 5 nojalla jakaa φ(m) vasemman ja oikean puolen kongruentit luvut luvulla r 1 r r φ(m) ( = i=1 ri ). Tämän tuloksena saadaan 1 a φ(m) (mod m). Olkoon p alkuluku. Koska jokainen kokonaisluku i, 1 i < p, on suhteellinen alkuluku luvun p suhteen, saadaan φ(p) = p - 1. Eulerin lauseen (a φ(m) 1 (mod m), kun syt(a,m) = 1) seurauksena saadaan a p-1 1 (mod p), josta edelleen Lauseen 3.3 kohdan 4 (ii) nojalla a p a (mod p) aina kun a ei ole luvun p monikerta. Toisaalta a p a (mod p) on triviaalisti voimassa, jos a on luvun p monikerta (koska tällöin p (a p - a)). Saadaan siis seuraava tulos: Lause 4.4 Fermat'n pieni lause Olkoon p alkuluku ja a kokonaisluku, joka ei ole luvun p monikerta. Tällöin a p-1 1 (mod p) Edelleen kaikille (vapaasti valituille) kokonaisluvuille a on voimassa a p a (mod p). Yksittäistapauksissa voidaan suorittaa testausta Mathematica-funktiolla PowerMod:
Salakirjoitus 9 Prime[10 000] (* saadaan 10 000. alkuluku *) 104 79 p = 104 79; a = 9 999 999; PrimeQ[p] PowerMod[a, p, p] Mod[a, p] True True Kuten olemme huomanneet, φ( p) = p - 1, kun p on alkuluku. Koska täsmälleen yksi jokaisesta p:stä (kpl) peräkkäisestä kokonaisluvusta on jaollinen luvulla p, saamme seuraavan vahvemman Eulerin φ-funktiota koskevan tuloksen: Lause 4.5 Jos p on alkuluku ja k Z +, niin φ p k = p k pk p = pk 1-1 p. Todistus: Jakojäännökset modulo p k ovat 0, 1,,..., p k - 1, joita on siis p k kappaletta. Näistä luvulla p jaollisia ovat luvut 0, p, p, 3p,..., p k-1-1 p, joita on p k-1-1 + 1 = p k-1 kappaletta. Näin ollen luvun p k kanssa suhteellisia alkulukuja on p k - p k-1 kappaletta. Siis φ p k = p k - p k-1 = p k pk p = pk 1-1 p. Harjoituksia 5 Todista (tai kertaa ajatuksella) Lause 4.4 (Fermat'n pieni lause): Olkoon p alkuluku ja a kokonaisluku, joka ei ole luvun p monikerta. Tällöin a p-1 1 (mod p) Edelleen kaikille (vapaasti valituille) kokonaisluvuille a on voimassa a p a (mod p). 6 Osoita Fermat'n pienen lauseen nojalla, että a) 198 1 (mod 199) b) 10 1 1 (mod 11) c) 10 5 10 (mod 11) 7 Kertaa Lauseen 4.5 todistus: Jos p on alkuluku ja k Z +, niin
Salakirjoitus 10 φ p k = p k pk p = pk 1-1 p. 4.4 Eulerin funktio ja kertolaskun säilyminen Määritelmä 4.4 Funktio f : N N on kertolaskun säilyttävä (multiplicative), jos jokaiselle kokonaislukuparille (m, n) pätee: syt(m, n) = 1 f (m n) = f (m) f (n). Lause 4.6 Eulerin funktio φ(m) on kertolaskun säilyttävä. Todistus (1. tapa): Olkoon syt(m, n) = 1 ja olkoot { a 1, a,, a φ(m) } sekä { b 1, b,, b φ(n) } supistettuja jäännössysteemejä modulo m (vastaavasti n). Riittää osoittaa, että φ(m) φ(n) kokonaislukua n a i + m b j, 1 i φ(m) ja 1 j φ(n), muodostavat supistetun jäänössysteemin modulo m n. On suhteellisen helppo nähdä, että kokonaisluvut n a i + m b j, 1 i φ(m) ja 1 j φ(n), ovat erillisiä modulo m n ja että ne ovat suhteellisia alkulukuja luvun m n kanssa. (Käytä Lemmaa 3. ja kohtaa (3.)). Tulee vielä todistaa, että k, jolle syt(k, m n) = 1, on kongruentti luvun n a i + m b j kanssa modulo m n jollekin 1 i φ(m) ja 1 j φ(n). Koska syt(k, m) = 1 ja syt(k, n) = 1, on Lemman 4. nojalla olemassa kokonaisluvut i ja j, 1 i φ(m) ja 1 j φ(n), joille k n a i (mod m) ja k m b i (mod n). Tästä seuraa, että molemmat m ja n jakavat luvun k - n a i - m b j, ts. k - n a i - m b j = m m 1 ja k - n a i - m b j = n n 1 joillekin m 1, n 1 Z. Koska m m 1 = n n 1 ja syt(m, n) = 1, todetaan Lemman 1.5 nojalla, että m n 1 ja n m 1, ts. m n m m 1 = n n 1. Tämä tarkoittaa sitä, että k - n a i - m b j, ts k n a i + m b j mod(m n). Lauseen 4.6 Todistus (. tapa): Olkoon syt(m, n) = 1. Jakojäännökset (mod mn) ovat m n jakaa luvun n kpl m kpl 0 1 n - 1 n n + 1 n + n + (n - 1) n n + 1 n + n + (n - 1) (m - 1) n (m - 1) n + 1 (m - 1) n + (m - 1) n + (n - 1) 0 (mod n) 1 (mod n) (mod n) (n - 1) (mod n) Kunkin pystyrivin luvut kuuluvat samaan jäännösluokkaan (mod n) ja kahden eri pystyrivin alkiot eri jäännösluokkiin (mod n). Täten on φ(n) pystyriviä, joiden kaikki luvut ovat suhteellisia alkulukuja luvun n suhteen. Koska syt(m, n) = 1, kunkin pystyrivin kaikki alkiot ovat keskenään epäkongruentteja (mod m), ts. k n + l k' n + l (mod m), sillä k n + l (k' n + l ) = (k k') n ei ole jaollinen luvulla m, jos k k', 0 k, k' m 1. Kussakin pystyrivissä on siis m keskenään epäkongruenttia lukua (mod m). Täten kussakin pystyrivissä on
Salakirjoitus 11 tarkalleen yksi alkio kustakin jäännösluokasta (mod m). Edelleen jokaisessa näistä pystyriveistä on φ(m) lukua, jotka ovat suhteellisia alkulukuja luvun m suhteen. Näin ollen on φ(n) φ(m) lukua, jotka ovat suhteellisia alkulukuja sekä luvun m että luvun n suhteen. Toisaalta näitä lukuja on φ(m n) kappaletta. Siis φ(m n) = φ(m) φ(n). Induktiolla todistetaan, että jos luvut m 1, m,..., m k ovat pareittain suhteellisia alkulukuja, niin φ(m 1 m m k ) = φ(m 1 ) φ(m ) φ(m k ). Esimerkki 4.1 (Harjoitus) Etsi alla olevasta taulukosta kokonaisluvun 10 kaikki alkuluokat (edustajat). Käy läpi Lauseen 4.6 todistus yksittäistapauksessa: φ(10) = φ(8 15) = φ(8) φ(15) = 4 8 = 3. Ensimmäinen kyseeseen tuleva sarake on tehty malliksi. Merkitse myös näkyviin poimittavien lukujen (merkitään neliöillä) edustamat alkuluokat (tai ainakin osa niistä) modulo 8 ja modulo 15. Table[Range[0, 7] + i * 8, {i, 0, 14}] 0 1 3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 18 19 0 1 3 4 5 6 7 8 9 30 31 3 33 34 35 36 37 38 39 40 41 4 43 44 45 46 47 48 49 50 51 5 53 54 55 56 57 58 59 60 61 6 63 64 65 66 67 68 69 70 71 7 73 74 75 76 77 78 79 80 81 8 83 84 85 86 87 88 89 90 91 9 93 94 95 96 97 98 99 100 101 10 103 104 105 106 107 108 109 110 111 11 113 114 115 116 117 118 119 Lause 4.7 Olkoon m = p 1 k 1 p k p r k r luvun m esitys erisuurten alkulukujen p 1, p,..., p r tulona. Tällöin φ(m) = m 1-1 p 1 1-1 p 1-1 p r, toisin sanoen φ(m) = m p alkuluku, p m 1-1 p Todistus: Yhdistä Lause 1.7 (aritmetiikan peruslause), Lause 4.5 ja Lause 4.6. Yksityiskohdat jätetään harjoitustehtäväksi.
Salakirjoitus 1 Esimerkki 4. Lasketaan φ(3000). Koska 3000 = 3 3 5 3, saadaan Lauseen 4.7 nojalla φ(3000) = 3000 1-1 1-1 3 1-1 5 = 3000 1 3 4 5 = 800. Siis luvuista 0, 1,,..., 999 on suhteellisia alkulukuja luvun 3000 suhteen tarkalleen 800 kappaletta. Samoin alkuluokkia (mod 3000) on 800. Mathematica-funktioden Length ja EulerPhi sekä aiemmin määrittelemämme CoPrimes -funktion avulla (ks. myös Apply) voidaan myös testata Lausetta 4.7: m = 100; Length[CoPrimes[m]] EulerPhi[m] m * Apply Times, Table If PrimeQ[i] && IntegerQ m i, 1-1, 1, {i,, m} i 40 40 40 Harjoituksia 8 Täydennä Esimerkin 4.1 taulukko, ts. etsi alla olevasta taulukosta kokonaisluvun 10 kaikki alkuluokat (edustajat). Käy läpi Lauseen 4.6 todistus yksittäistapauksessa: φ(10) = φ(8 15) = φ(8) φ(15) = 4 8 = 3. Ensimmäinen kyseeseen tuleva sarake on tehty malliksi. Merkitse myös näkyviin poimittavien lukujen (merkitään neliöillä) edustamat alkuluokat (tai ainakin osa niistä) modulo 8 ja modulo 15.
Salakirjoitus 13 0 1 3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 18 19 0 1 3 4 5 6 7 8 9 30 31 3 33 34 35 36 37 38 39 40 41 4 43 44 45 46 47 48 49 50 51 5 53 54 55 56 57 58 59 60 61 6 63 64 65 66 67 68 69 70 71 7 73 74 75 76 77 78 79 80 81 8 83 84 85 86 87 88 89 90 91 9 93 94 95 96 97 98 99 100 101 10 103 104 105 106 107 108 109 110 111 11 113 114 115 116 117 118 119 9 Laske Esimerkin 4. tavalla φ(11000). Kuinka monta luvuista 0, 1,,..., 10999 on suhteellisia alkulukuja luvun 11000 suhteen, ts. kuinka monta alkuluokkaa on modulo 11000? 4.5 Suurien potenssien nopea laskeminen: Eulerin lause ja peräkkäiset neliöönkorotukset Tarkastellaan kappaleen 4 lopuksi Eulerin funktion φ käyttämistä suurien potenssien a f (mod m) nopeassa laskemisessa, kun syt(a, m) = 1. Jakoalgoritmin nojalla f = q φ(m) + r, 0 r < φ(m). Eulerin lauseen nojalla a φ(m) 1 (mod m), joten a f = a q φ(m)+r = (a φ(m) ) q a r a r (mod m). Olkoon luvun r binääriesitys r = e k k + e k-1 k-1 + + e 1 + e 0, e i {0,1}, e k = 1. Lasketaan peräkkäisillä neliöönkorotuksilla seuraavat jäännösluokkat [a 1 ], [a ],..., [a k ] (mod m). Edustajiksi
Salakirjoitus 14 valitaan itseisarvoltaan pienimmät mahdolliset luvut tai yksinkertaisesti jakojäännökset väliltä 0,..., m - 1: a 1 a (mod m) a a 1 (mod m) a 3 a (mod m) ( a = a 4 = a (mod m)) ( a = a = a 3 (mod m)) a k a k-1 (mod m) ( a k-1 = a k-1 = a k (mod m)). Saadaan siis a f a r = a e k k +e k-1 k-1 + + e +e 1 +e 0 = a e k k a e k-1 k-1 a e a e 1 a e 0 = a k e k a k-1 e k-1 a e a e1 a e 0 (mod m), toisin sanoen (4.1) a f (a k ) e k (ak-1 ) e k-1 (a ) e (a1 ) e 1 a e 0 (mod m) josta a f (mod m) on nopeasti laskettavissa. Esimerkki 4.3 Lasketaan 17 17 850 989 (mod 541). Tässä on siis kyseessä tapaus a f (mod m), jossa a = 17 ja m = 541 ovat alkulukuja. Täten syt(a, m) = 1. Edelleen φ(m) = 540, f = 17850989 = 33057 540 + 09, missä jakojäännöksen r = 09 binääriesitys on r = 11 010 001. Kertoimet e i ; i = 0, 1,..., 7 (= k); esityksessä r = e k k + e k-1 k-1 + + e 1 + e 0, ovat siis seuraavat: e 0 = e 4 = e 6 = e 7 = 1 ja e 1 = e = e 3 = e 5 = 0. Lasketaan peräkkäisillä neliöönkorotuksilla lukuja a 1, a,... kohdan (4.1) mukaista esitystä varten: a = 17 e 0 = 1 a 1 = a = 17 = 89 (mod 541) e 1 = 0 a = a 1 = 89 = 8351 07 (mod 541) e = 0 a 3 = a 07 = 4849 110 (mod 541) e 3 = 0 a 4 = a 3 110 = 1100 198 (mod 541) e 4 = 1 a 5 = a 4 198 = 3904 5 (mod 541) e 5 = 0 a 6 = a 5 5 = 63504 07 (mod 541) e 6 = 1 a 7 = a 6 07 = 4849 110 (mod 541) e 7 = 1 Nyt kohdan (4.1) ja Lauseen 3.3 (kohta 4) nojalla: 17 17 850 989 (a 7 ) e 7 (a6 ) e 6 (a ) e (a1 ) e 1 a e 0 (110) 1 (07) 1 (5) 0 (198) 1 (110) 0 (07) 0 (89) 0 (17) 1 = 110 07 1 198 1 1 1 17 = (110 07) (198 17) (voidaan ryhmitellä vaikkapa näin)
Salakirjoitus 15 = 770 3366 48 10 = 5760 350 (mod 541) 17 850 989 Vaikka 17 on erittäin suuri luku (siinä on lähes miljoonaa numeroa), tarvittiin laskelmissa vain Eulerin lausetta ja 7 peräkkäistä neliöön korotusta sen selville saamiseen, että 17 17 850 989 350 (mod 541). Matemaattisissa tietokoneohjelmissa peräkkäisten neliöönkorotusten ideaa käytetään luonnollisesti hyväksi suurten lukujen moduloaritmetiikassa. Harjoituksia 30 Laske 17 1785 (mod 47) käyttämällä Eulerin lausetta ja peräkkäisiä neliöönkorotuksia.