ggT & kgV

Primfaktorzerlegungen spielen auch beim Bestimmen des ggT (grösster gemeinsamer Teiler) und des kgV (kleinstes gemeinsames Vielfaches) zweier natürlicher Zahlen aa und bb eine wichtige Rolle.

Exercise 1: kgV und ggT

Bestimme das kgV und den ggT der Zahlen 153900153'900 und 180600180'600.

Solution

Es ist

153900=22345219180600=23352743\begin{align*} 153'900 &= 2^2\cdot3^4\cdot5^2\cdot19\\ 180'600 &= 2^3\cdot3\cdot5^2\cdot7\cdot43 \end{align*}

und daher ggT(180600,153900)=22352\text{ggT}(180'600, 153'900)=2^2\cdot3\cdot5^2 und kgV(180600,153900)=23345271943\text{kgV}(180'600, 153'900)=2^3\cdot3^4\cdot5^2\cdot7\cdot19\cdot43.

Note 1

Bei grossen Zahlen ist die Methode der Primfaktorzerlegung jedoch oft sehr aufwändig oder praktisch nicht durchführbar.

Der Euklid'sche Algorithmus

Note 2: Euklidischer Algorithmus

Zur Bestimmung des ggT zweier Zahlen aa und bb verwendet man am effizientesten den Euklidischen Algorithmus.

Als Beispiel betrachten wir die Zahlen 153900153'900 und 180600180'600. Zunächst wird die grössere durch die kleinere Zahl geteilt und der Rest bestimmt. Anschliessend teilt man die kleinere Zahl durch diesen Rest und berechnet den neün Rest. Dieses Verfahren setzt man so lange fort, bis der Rest gleich null ist. Der letzte von null verschiedene Rest ist der ggT.
(Euklidischer Algorithmus kommentiert)

Solution180600=1539001+26700153900=267005+2040026700=204001+630020400=63003+15006300=15004+3001500=3005+0\begin{align*} 180'600 &= 153'900 \cdot 1 + 26'700 \\ 153'900 &= 26'700 \cdot 5 + 20'400 \\ 26'700 &= 20'400 \cdot 1 + 6300 \\ 20'400 &= 6300 \cdot 3 + 1500 \\ 6300 &= 1500 \cdot 4 + 300 \\ 1500 &= 300 \cdot 5 + 0 \end{align*}

Damit ist ggT(153900,180600)=300\mathrm{ggT}(153'900,180'600) = 300.

Exercise 2: 🧩

Zeige, dass der Euklid'sche Algorithmus stets den ggT der beiden Zahlen liefert.

Solution

Der Beweis wird im Satz unten geführt.

Theorem 1: Euklid'scher Algorithmus

Der Euklid'sche Algorithmus berechnet den grössten gemeinsamen Teiler ggT(a,b)\operatorname{ggT}(a,b) zweier ganzer Zahlen aa und bb (a>b)(a>b):

  1. Teile aa durch bb und bestimme den Rest rr:
a=qb+r,0r<b.a = q\cdot b + r,\quad 0 \le r < b.
  1. Falls r=0r=0, dann ist ggT(a,b)=b\operatorname{ggT}(a,b)=b.

  2. Falls r0r\neq 0, setze a:=ba:=b, b:=rb:=r und gehe zu Schritt 1 zurück.

Proof

Seien a,bZa,b\in\mathbb{Z} und oEdA a>ba>b. Dann haben wir

a=q1b+r1b=q2r1+r2r1=q3r2+r3rn2=qnrn1+rnrn1=qn+1rn+0\begin{align*} a &= q_1\cdot b + r_1\\ b &= q_2\cdot r_1 + r_2\\ r_1 &= q_3\cdot r_2 + r_3\\ &\vdots\\ r_{n-2} &= q_n\cdot r_{n-1} + r_n\\ r_{n-1} &= q_{n+1}\cdot r_n + 0\\ \end{align*}

Wir zeigen zuerst, dass sich in einer "Schleife" der ggT nicht ändert.

Wir setzen t1:=ggT(a,b)t_1:=\operatorname{ggT}(a,b). Sicher

t1a und t1b,t_1\mid a\text{ und } t_1\mid b,

d.h. k,lZ\exist k,l\in\mathbb{Z} mit t1k=at_1k=a und t1l=bt_1l=b. Betrachte

aq1b=t1kq1t1l=t1(kq1l)Z,a-q_1b=t_1k-q_1t_1l=t_1\underbrace{(k-q_1l)}_{\in\mathbb{Z}},

d.h. t1(aq1b)t_1\mid (a-q_1b). Also ist

ggT(a,b)ggT(b,r1)\operatorname{ggT}(a,b)\leq\operatorname{ggT}(b,r_1)

Sei umgekehrt t2:=ggT(b,aq1b)t_2:=\operatorname{ggT}(b,a-q_1b). Sicher

t2b und t2(aq1b),t_2\mid b\text{ und } t_2\mid (a-q_1b),

d.h. s,uZ\exist s,u\in\mathbb{Z} mit t2s=bt_2s=b und t2u=aq1bt_2u=a-q_1b. Daraus folgt

a=t2u+q1b=t2u+q1t2s=t2(u+q1s)Z,a=t_2u+q_1b=t_2u+q_1t_2s=t_2\underbrace{(u+q_1s)}_{\in\mathbb{Z}},

d.h. t2at_2\mid a. Also ist

ggT(b,r1)ggT(a,b),\operatorname{ggT}(b,r_1)\leq\operatorname{ggT}(a,b),

insgesamt also

ggT(b,r1)=ggT(a,b).\operatorname{ggT}(b,r_1) = \operatorname{ggT}(a,b).

Im letzten Schritt des Algorithmus ist ggT(rn,0)\operatorname{ggT}(r_n,0) und wegen oben

ggT(rn,0)=ggT(rn1,rn)==ggT(a,b).\operatorname{ggT}(r_n,0)=\operatorname{ggT}(r_{n-1},r_n)=\dots=\operatorname{ggT}(a,b).

Da ggT(rn,0)=rn\operatorname{ggT}(r_n,0)=r_n folgt die Behauptung.

Note 3

Pseudocode in Python kann so aussehen:

def euklid(a, b):
    while b != 0:
        r = a % b
        a, b = b, r
    return a
Example 1

Finde ggT(252,198)\operatorname{ggT}(252,198).

Solution252=1198+54198=354+3654=136+1836=218+0\begin{align*} 252 &= 1\cdot 198 + 54\\ 198 &= 3\cdot 54 + 36\\ 54 &= 1\cdot 36 + 18\\ 36 &= 2\cdot 18 + 0 \end{align*}

Also ist ggT(252,198)=18\operatorname{ggT}(252,198)=18.

Exercise 3: \operatorname{ggT} mit Euklid'schem Algorithmus

Bestimme den grössten gemeinsamen Teiler von 544544 und 119119 mit dem Euklidischen Algorithmus.

Solution

Wir führen die Divisionen durch:

544=4119+68119=168+5168=151+1751=317+0\begin{align*} 544 &= 4 \cdot 119 + 68 \\ 119 &= 1 \cdot 68 + 51 \\ 68 &= 1 \cdot 51 + 17 \\ 51 &= 3 \cdot 17 + 0 \end{align*}

Damit ist ggT(544,119)=17\operatorname{ggT}(544,119)=17.

Exercise 4: ggT mit Euklid

Bestimme den grössten gemeinsamen Teiler (ggT) der Zahlen 153900153'900 und 180600180'600 mit dem Euklidischen Algorithmus.

Solution

Wir führen den Algorithmus aus:

180600=1539001+26700153900=267005+2040026700=204001+630020400=63003+15006300=15004+3001500=3005+0\begin{align*} 180'600 &= 153'900 \cdot 1 + 26'700 \\ 153'900 &= 26'700 \cdot 5 + 20'400 \\ 26'700 &= 20'400 \cdot 1 + 6'300 \\ 20'400 &= 6'300 \cdot 3 + 1'500 \\ 6'300 &= 1'500 \cdot 4 + 300 \\ 1'500 &= 300 \cdot 5 + 0 \end{align*}

Der letzte von null verschiedene Rest ist 300300. Also gilt:

ggT(153900,180600)=300\operatorname{ggT}(153'900,180'600) = 300

Zwischen dem ggT und dem kgV besteht der folgende Zusammenhang.

Theorem 2
ab=ggT(a,b)kgV(a,b)a\cdot b=\text{ggT}(a,b)\cdot\text{kgV}(a,b)
Proof

Für das kgV nimmt man jeweils die maximal vorkommende Anzahl der Primfaktoren aus beiden Zahlen, für den ggT jeweils die minimale Anzahl der gemeinsamen Primfaktoren. Kommt also ein Primfaktor nur in einer der Zahlen vor, so wird er wegen des kgVs verwendet und taucht im ggT nicht auf. Kommt ein Faktor in beiden Zerlegungen vor, so wird er in seiner maximalen Anzahl wegen des kgVs genommen und wegen seiner minimalen Anzahl für den ggT. Also werden insgesamt alle Faktoren genau einmal im Produkt vorkommen.

Exercise 5: ggT und kgV mit Euklid

Bestimme den ggT und das kgV der Zahlen 55445544 und 44104410 mit dem euklidschen Algorithmus und dem letzten Satz.

Solution5544=44101+11344410=11343+10081134=10081+1261008=1268+0\begin{align*} 5544 &= 4410\cdot1+1134\\ 4410 &= 1134\cdot3+1008\\ 1134 &= 1008\cdot1+126\\ 1008 &= 126\cdot8+0 \end{align*}

Der ggT ist also 126126. Damit ist das kgV 55444410126=194040\frac{5544\cdot4410}{126}=194'040.

Lemma von Bézout

Das Lemma von Bézout liefert eine wichtige Verbindung zwischem dem grössten gemeinsamen Teiler zweier Zahlen und seiner Darstellung als Linearkombination der beiden.

Example 2

Betrachten wir beispielsweise a=15a=15 und b=21b=21, so sehen wir folgende Linearkombinationen ax+byax+by:

xx yy ax+byax+by
11 00 1515
00 11 2121
11 11 3636
1-1 00 15-15
00 1-1 21-21
11 1-1 6-6
1-1 11 66
3-3 22 3-3
33 2-2 33
22 1-1 99

Wir beobachten, dass die Linearkombinationen alle Vielfache von 33 sind.

Theorem 3: Lemma von Bézout

Seien a,bZa, b \in \mathbb{Z} und nicht beide null. Dann existieren ganze Zahlen x,yZx, y \in \mathbb{Z}, sodass

ggT(a,b)=ax+by.\operatorname{ggT}(a, b) = ax + by.
Proof

Betrachte die Menge

S={ax+byx,yZ, ax+by>0}.S = \{ ax + by \mid x, y \in \mathbb{Z},\ ax + by > 0 \}.

Da aa und bb nicht beide 00 sind, ist SS \neq \emptyset. Nach dem Wohlordnungsprinzip besitzt SS ein kleinstes Element. Bezeichne dieses mit

d=ax0+by0.d = ax_0 + by_0.

Wir zeigen dad \mid a und dbd \mid b:
Zuerst dad \mid a. Dazu führen wir die Division mit Rest aus:

a=qd+r,0r<d.a = qd + r,\quad 0 \le r < d.

Dann gilt für den Rest

r=aqd=aq(ax0+by0)=a(1qx0)+b(qy0).r = a - qd = a - q(ax_0 + by_0) = a(1 - qx_0) + b(-qy_0).

Also ist rS{0}r \in S\cup\{0\}. Wäre r>0r > 0, so hätten wir wegen r<dr<d ein kleineres Element als dd in SS, Widerspruch. Also muss r=0r = 0, d.h. dad \mid a.
Analog folgt dbd \mid b.

Bleibt noch zu zeigen, dass dd der grösste Teiler ist:
Sei dd' ein weiterer gemeinsamer Teiler von aa und bb. Dann teilt dd' auch jede Linearkombination ax+byax + by, insbesondere ax0+by0=dax_0 + by_0 = d. Also ddd' \mid d. Das heisst dd ist der grösste gemeinsame Teiler und wir sind fertig.

Im obigen Beweis wurde das Wohlordnungsprinzip verwendet, das wir der Vollständigkeit halber hier notieren.

Theorem 4: Wohlordnungsprinzip

Jede nichtleere Teilmenge der natürlichen Zahlen N\mathbb{N} besitzt ein kleinstes Element.
Das heisst: Ist MNM \subseteq \mathbb{N} mit MM \neq \emptyset, so existiert ein m0Mm_0 \in M, sodass mm0m\ge m_0 für alle mMm \in M gilt.

Proof

BWoC: Sei MNM \subseteq \mathbb{N} und MM \neq \emptyset. Angenommen, MM besitze kein kleinstes Element.
Dann gilt für jede Zahl nNn \in \mathbb{N}: Es gibt ein mMm \in M mit m<nm < n. Aber für die kleinste natürliche Zahl n=1n = 1 müsste ein m<1m < 1 existieren, was wegen mNm\in\mathbb{N} unmöglich ist. Dies widerspricht der Annahme, dass MM kein kleinstes Element besitzt.

Hilfreich ist manchmal folgender Satz, dessen Beweisvariante den Satz von Bézout verwendet.

Theorem 5: Lemma von Euklid

Sei pp eine Primzahl und a,bZa,b\in\mathbb{Z}. Falls pabp\mid ab, dann gilt

paoderpb.p\mid a \quad\text{oder}\quad p\mid b.
Proof

Ich zeige dies meist mit einer Gegenannahme, möchte hier aber eine direkte Variante präsentieren:

Nehmen wir an, pabp\mid ab.

  • Falls pap\mid a, ist die Behauptung sofort erfüllt.
  • Falls nicht, gilt ggT(p,a)=1\operatorname{ggT}(p,a)=1, da pp prim ist und pap\nmid a.
    Nach dem Satz von Bézout existieren u,vZu,v\in\mathbb{Z} mit up+va=1.up+va=1. Multiplizieren wir mit bb: ubp+vab=b.ubp+vab=b. Da pubpp\mid ubp und pvabp\mid vab (weil pabp\mid ab), folgt pbp\mid b.