Euklides algoritm - UU Studentportalen

Uppsala Universitet
Matematiska institutionen
Isac Hedén
Algebra I, 5 hp
Sammanfattning av föreläsning 4.
Euklides algoritm
Euklides algoritm är en algoritm där man upprepar divisionsalgoritmen flera gånger, och den
används för att beräkna den största gemensamma delaren till två tal a och b. Först dividerar
man a med b med kvot och rest. Därefter divideras b med resten. Därefter divideras den första
resten med den andra resten. Den andra resten med den tredje resten. Den tredje resten med
den fjärde och så vidare tills en division går jämnt upp och resten därmed blir noll. Den sista
nollskilda resten är lika med SGD(a, b).
Exampel 0.1. Vi utför Euklides algoritm på talen a = 315 och b = 56.
315 = 5 · 56 + 35
56 = 1 · 35 + 21
35 = 1 · 21 + 14
21 = 1 · 14 + 7
14 = 2 · 7 + 0
Som synes blev de successiva resterna 35, 21, 14, 7 respektive 0. Den sista nollskilda resten blev
7, och därför gäller det att SGD(315, 56) = 7.
Exampel 0.2. Om vi väljer a = 114 och b = 96 så får vi.
114 = 1 · 96 + 18
96 = 5 · 18 + 6
18 = 3 · 6 + 0
De successiva resterna blev 18, 6 och 0, så SGD(114, 96) = 6.
Man kan även beräkna största gemensamma delare med hjälp av primtalsfaktorisering
(det bygger på aritmetikens fundamentalsats) genom att primfaktorisera de fyra tal som ingick
i exemplen ovan, och helt enkelt se efter vad den största gemensamma delaren är.
315 = 32 · 5 · 7
56 = 23 · 7
114 = 2 · 3 · 19
96 = 25 · 3.
Det syns tydligt att Euklides algoritm gav rätt resultat i båda exemplen.
Aritmetikens fundamentalsats
Målet med dagens föreläsning var att bevisa följande sats om primtal, alltså tal som inte har
några icke-triviala delare1 .
Sats 0.3 (Aritmetikens fundamentalsats). Varje heltal som är större än eller lika med 2 kan
skrivas som en produkt av primtal, och så när på omordning av faktorerna är en sådan faktorisering entydig.
Beviset av satsen gjordes i fyra steg.
Steg 1: Om a ≥ 2 inte är ett primtal, så är den minsta positiva äkta delaren till a ett primtal.
Steg 2: Varje heltal som är större än eller lika med 2 kan skrivas som en produkt av primtal
(på minst ett sätt).
Steg 3: Låt a och b vara heltal, och p ett primtal. Om p|ab så följer det att p|a eller p|b.
Steg 4: Antag att ett heltal a ≥ 2 har två primfaktoriseringar:
a = p 1 p 2 · · · p m = q1 q2 · · · qn ,
(alla pj och qk är primtal).
Då gäller det att m = n, och att p1 = q1 , p2 = q2 , . . . , pn = qn (i alla fall om de två följderna av
primtal p1 , p2 , . . . , pn och q1 , q2 , . . . , qn numreras i lämplig ordning).
Bevis. (Steg 1): Eftersom a inte är ett primtal, så har a äkta delare. Låt b vara den minsta
positiva bland dessa. Då gäller det att 1 < b < a. Om nu b inte vore ett primtal så skulle b ha
en positiv äkta delare c med 1 < c < b, men då skulle c även vara en äkta delare till a, och den
skulle vara mindre än b. Det är en motsägelse eftersom b var den minsta bland a:s äkta positiva
delare.
Bevis. (Steg 2): Låt a vara ett positivt heltal, a ≥ 2. Om a inte redan självt är ett primtal, så
finns det enligt steg 1 ett primtal som delar a. Vi kallar detta primtal för p1 och kvoten för a1
så att
a = p1 a 1 .
Om a1 är ett primtal så är vi klara, annars använder vi steg 1 igen och hittar ett primtal som
delar a1 . Vi kallar detta primtal för p2 och kvoten för a2 så att
a = p1 p2 a 2 .
Om a2 är ett primtal så är vi färdiga, annars hittar vi ett primtal p3 som delar a2 och kallar
kvoten för a3 . Vi fortsätter på samma sätt tills vi kommer fram till en kvot ai som själv är ett
primtal. Anledningen till att vi förr eller senare måste erhålla en kvot ai som själv är ett primtal,
är att vi annars skulle kunna producera en oändligt avtagande följd av heltal som alla ligger
mellan 1 och a, nämligen följden
a1 > a2 > a3 > a4 > . . .
Detta är förstås omöjligt oavsett vilket heltal a som vi började med.
Bevis. (Steg 3): Vi visade att om p|ab men p - a så följer det att p|b. Antag alltså att p inte
delar a. Eftersom p är ett primtal måste då SGD(a, p) = 1, och genom ”uppnystning av Euklides
algoritm utförd på a och p” kan vi hitta två heltal x och y sådana att
xa + yp = 1.
1
Uppnystningen av Euklides algoritm spelade en central roll i beviset – det finns en separat fil om det i filarean.
Multiplicera denna likhet med b:
xab + ypb = b.
Nu ser vi att p uppenbarligen är en delare i vänstra ledet eftersom p delar båda termerna där
(här använder vi antagandet att p|ab). Alltså måste p även vara en delare i det högra ledet –
höger och vänster led är ju lika med varandra! Därmed är beviset färdigt.
Genom upprepad användning av steg 3 inser man att om ett primtal p delar en produkt
av k stycken tal, så måste p dela åtminstone en av de k faktorerna:
p|a1 a2 · · · ak ⇒ ∃i ∈ {1, 2, 3, . . . , k} : p|ai .
Vi kallar detta för steg 3b. Vi illustrerar med tre faktorer: Antag att p|abc. Eftersom abc = a(bc)
kan ses som en produkt av två faktorer, får vi enligt steg 3 att p|a eller p|bc. Om p - a så gäller
p|bc vilket enligt steg 3 medför att p|b eller p|c. I vilket fall delar alltså p minst en av a, b och c.
Bevis. (Steg 4): Vi vet redan från steg 2 att varje heltal a ≥ 2 kan skrivas som en produkt av
primtal, och nu återstår det att visa att denna faktorisering är entydigt bestämd av a – dvs. att
det inte finns flera olika sätt att primfaktorisera a.
Antag därför att vi har två stycken primfaktoriseringar av a (om de har olika många
faktorer, så kallar vi primtalen i den ”längsta” faktoriseringen för qi och primtalen i den ”kortare”
för pj , så att n ≥ m nedan):
a = p1 p2 · · · pm , och a = q1 q2 · · · qn .
Eftersom p1 är en faktor i a, är p1 en faktor i q1 q2 · · · qn , och det följer av steg 3b (vi kan använda
steg 3b eftersom p1 är ett primtal) att p1 |qi för något i ∈ {1, 2, . . . , n}. Ifall det skulle visa sig
att i 6= 1, så gör vi en omnumrering av q1 , q2 , . . . , qn så att det som före omnumreringen hette
qi efter omnumreringen istället heter q1 . Det leder till att p1 |q1 och eftersom både p1 och q1 är
primtal så följer det att p1 = q1 . Om vi förkortar a med p1 (som också är lika med q1 ) får vi
följande:
p2 p3 · · · pm = q2 q3 · · · qn .
Nu upprepar vi precis samma procedur, och drar slutsatsen att (eventuellt efter ytterligare en
omnumrering av q2 , q3 , . . . , qn ) att p2 = q2 . Efter att ha utfört proceduren m gånger kan vi dra
slutsatsen att p1 = q1 , p2 = q2 , . . . , pm = qm , och det som återstår är endera ekvationen 1 = 1
(om n = m) eller ekvationen
1 = qm+1 qm+2 · · · qn
(om m < n). I det första fallet är vi klara, och det andra fallet kan inte inträffa eftersom en
produkt av (fler än noll) primtal inte kan vara lika med 1.