Größter gemeinsamer Teiler

Aus Demo Wiki
(Weitergeleitet von GgT)
Zur Navigation springenZur Suche springen

Der größte gemeinsame Teiler (ggT) ist die jeweils größte natürliche Zahl <math>m</math>, durch die sich zwei oder mehr gegebene ganze Zahlen ohne Rest teilen lassen. Weiterhin sind auch alle (echten) Teiler von <math>m</math> dann Teiler aller beteiligten Zahlen, aber nicht die größten Teiler. Ist der größte gemeinsame Teiler <math>1</math>, sind die beteiligten Zahlen teilerfremd. In der elementaren Mathematik ist dessen wichtigste Anwendung das Kürzen von Brüchen.

So ist der <math>\operatorname{ggT}(10,\ 15) = 5</math>, da sich sowohl <math>10</math> und <math>15</math> durch <math>5</math> teilen lassen. Der Bruch <math>\tfrac{10}{15}</math> lässt sich zu <math>\tfrac{2}{3}</math> kürzen. Die beiden „verbleibenden“ Zahlen <math>2</math> und <math>3</math> sind nun teilerfremd und lassen sich nicht weiter kürzen.

Sein Pendant ist das kleinste gemeinsame Vielfache (kgV). Beide spielen unter anderem in der Arithmetik, der Algebra und der Zahlentheorie eine Rolle.

Wichtigste Anwendung ist heutzutage die Kryptografie.

Das Konzept des größten gemeinsamen Teilers lässt sich auf Gaußsche Zahlen, Polynome und vieles andere erweitern.

Definition

[Bearbeiten]

Der größte gemeinsame Teiler ggT zweier ganzen Zahlen <math>a</math> und <math>b</math>, von denen mindestens eine ungleich Null ist, ist die größte ganze Zahl <math>m</math>, so dass <math>m</math> ein Teiler sowohl von <math>a</math> als auch von <math>b</math> ist. Das heißt, es gibt ganze Zahlen <math>\alpha</math> und <math>\beta</math>, so dass

<math>a = m \cdot \alpha\quad</math> und <math>\quad b = m \cdot \beta</math>

ist und <math>m</math> die größte Zahl mit dieser Eigenschaft ist.

Als Operator wird er <math>\operatorname{ggT}(a,\ b)</math> in deutschsprachigen Texten, <math>\operatorname{gcd}(a,\ b)</math> (greatest common divisor) in englischsprachigen Texten geschrieben, wobei letztere Schreibweise auch in deutschsprachigen Texten zu finden ist. Eine weitere Bezeichnung ist greatest common factor.

Ist eine der beiden Zahlen <math>a</math> und <math>b</math> Null, so ist der ggT der absolute Wert der betragsmäßig größeren Zahl:

<math>\operatorname{ggT}(0,\ a) = \operatorname{max}(|0|,\ |a|) = \operatorname{max}(0,\ |a|) = |a|</math>,

da <math>|a| \ge 0 </math> ist und was auch mit <math>0 = |a| \cdot 0</math> und <math>a = |a| \cdot \operatorname{sgn}(a)</math> übereinstimmt, wobei <math>\operatorname{sgn}(a)</math> hier für <math>+1</math> für positive und <math>-1</math> für negative Zahlen steht. Dieser Fall ist weiterhin wichtig für den Abschluss des euklidischen Algorithmus.

Sind beide Zahlen Null, so ergibt letztere Regel

<math>\operatorname{ggT}(0,\ 0) = \operatorname{max}(|0|,\ |0|) = \operatorname{max}(0,\ 0) = 0</math>,

was wiederum mit <math>0 = 0 \cdot 0</math> und <math>0 = 0 \cdot 0</math> übereinstimmt, auch wenn die Zahl <math>0</math> mit dem Begriff größter gemeinsamer Teiler nicht harmonisiert (obwohl es für den ggT gar keiner Division bedarf, siehe Definition).

Diese Definition bzw. Konvention wird meist auch verwendet, da sie einige Konzepte vereinfacht (wie z. B. die Bézout-Identität). Auch die meisten Computeralgebrasysteme, wie z. B. Wolfram Alpha benutzen diese Definition. Einige Autoren lassen <math>\operatorname{ggT}(0,\ 0)</math> jedoch ähnlich wie <math>\tfrac{0}{0}</math> undefiniert.

Der ggT von <math>a</math> und <math>b</math> ist ihr größter gemeinsamer positiver Teiler in der Quasiordnung der Teilbarkeit. Das bedeutet, dass die gemeinsamen Teiler von <math>a</math> und <math>b</math> genau die Teiler ihres ggT sind. Dies wird in der Regel mit Hilfe des Lemma von Euklid, des Fundamentalsatzes der Arithmetik oder des euklidischen Algorithmus bewiesen. Dies ist die Bedeutung von „größte“, die für die Verallgemeinerung des Konzepts des ggT verwendet wird. Dies spielt eine wesentliche Rolle, wenn man die Schulmathematik verlässt und nicht nur Zahlen, sondern komplexere mathematische Konzepte wie Polynome, Funktionen und Matrizen verwendet.

Beispiele

[Bearbeiten]

Größter gemeinsamer Teiler zweier Zahlen

[Bearbeiten]

<math>\operatorname{ggT}(12,\ 18)</math><ref>Wolfram Alpha zu ggT(12, 18)</ref>

  • <math>12</math> hat die Teiler: <math>1, 2, 3, 4 , 6,\ \ \ 12</math>.
  • <math>18</math> hat die Teiler: <math>1, 2, 3, \ \ , 6, 9,\ \ \ 18</math>.
  • Die gemeinsamen Teiler von <math>12</math> und <math>18</math> sind: <math>1, 2, 3</math> und <math>6</math>.
Der größte gemeinsame Teiler ist <math>6</math>:
<math>\operatorname{ggT}(12,\ 18) = 6</math>

Größter gemeinsamer Teiler dreier Zahlen

[Bearbeiten]

<math>\operatorname{ggT}(12,\ 18,\ 30)</math><ref>Wolfram Alpha zu ggT(12, 18, 30)</ref>

  • <math>12</math> hat die Teiler: <math>1, 2, 3, 4 \ \ , 6,\ \ \ \ 12</math>.
  • <math>18</math> hat die Teiler: <math>1, 2, 3, \ \ \ \ , 6, 9,\ \ \ \ \ \ \ 18</math>.
  • <math>30</math> hat die Teiler: <math>1, 2, 3, \ \ 5 , 6, \ 10,\ 15,\ \ 30</math>.
  • Die gemeinsamen Teiler von <math>12</math>, <math>18</math> und <math>30</math> sind: <math>1, 2, 3</math> und <math>6</math>.
Der größte gemeinsame Teiler ist <math>6</math>:
<math>\operatorname{ggT}(12, 18, 30) = 6</math>

Größter gemeinsamer Teiler zweier Polynome

[Bearbeiten]

Die „Größe“ wird hier gemessen im Polynomgrad.

Im Ring <math>\Z[x]</math>
<math>\operatorname{ggT}(x^2-1,\ x+1)</math>:
  • <math>x^2-1</math> hat die Teiler <math>x+1</math>, <math>\;x-1</math>. Beide haben den Grad 1.
  • <math>x\ +\ 1</math> hat den Teiler <math>x+1</math>.
Ergebnis: Der gradmäßig größte gemeinsame Teiler von <math>x^2-1</math> und <math>x+1</math> ist <math>\;x+1</math>.
<math>\qquad\qquad\Longrightarrow \operatorname{ggT}(x^2-1,\ x+1) = x+1</math>.
<math>\operatorname{ggT}(2 x^3 + 9 x^2 + 6 x + 1,\ 3 x^3 + 14 x^2 + 11 x + 2)</math><ref>Wolfram Alpha zu ggT(2x³ + 9x² + 6x + 1, 3x³ + 14x² + 11x + 2)</ref>
  • <math>2 x^3 + \ \ 9 x^2 + \ \ 6 x + 1</math> hat die Teiler <math>\;2x + 1</math> und <math>x^2 + 4x + 1</math>.
  • <math>3 x^3 + 14 x^2 + 1 1 x + 2</math> hat die Teiler <math>\;3x + 2</math> und <math>x^2 + 4x + 1</math>.
  • <math>x^2 + 4x + 1\;</math> lässt sich zwar darstellen als <math>\;(x + 2 - \sqrt{3}) \cdot (x + 2 + \sqrt{3})</math>. Wegen <math>\sqrt{3} \notin \Z</math> ist es aber prim im Ring <math>\Z[x]</math>.
  • Die gemeinsamen Teiler von <math>\ 2 x^3 + 9 x^2 + 6 x + 1\ </math> und <math>\ 3 x^3 + 14 x^2 + 11 x + 2\ </math> sind im Ring <math>\Z[x]</math>:
<math>1\;</math> und <math>\;x^2 + 4x + 1</math>.
Ergebnis: Der gradmäßig größte gemeinsame Teiler ist: <math>\;x^2 + 4x + 1</math>
<math>\qquad\qquad\Longrightarrow \operatorname{ggT}(2 x^3 + 9 x^2 + 6 x + 1,\ 3 x^3 + 14 x^2 + 11 x + 2) = x^2 + 4x + 1</math>.
Im Ring <math>\Q(\sqrt{3})[x]</math>
Die gemeinsamen Teiler von <math>\ 2 x^3 + 9 x^2 + 6 x + 1\ </math> und <math>\ 3 x^3 + 14 x^2 + 11 x + 2\ </math> sind wegen
  • <math>x^2 + 4x + 1\; = \;(x + 2 - \sqrt{3}) \cdot (x + 2 + \sqrt{3})</math>
  • <math>1</math>, <math>\;x + 2 - \sqrt{3}</math>, <math>\;x + 2 + \sqrt{3}\ </math> und <math>\;x^2 + 4x + 1</math>.
Ergebnis: Der größte gemeinsame Teiler im Ring <math>\Q(\sqrt{3})[x]</math> ist: <math>\;x^2 + 4x + 1</math>
<math>\qquad\qquad\Longrightarrow\operatorname{ggT}(2 x^3 + 9 x^2 + 6 x + 1,\ 3 x^3 + 14 x^2 + 11 x + 2) = x^2 + 4x + 1</math>.
Im Ring <math>\R[x]</math>
  • <math>\operatorname{ggT}(\pi x^2-\pi,\ x+1) = x+1</math>.

Rechenregeln für Zahlen

[Bearbeiten]

Für ganze Zahlen <math>a,\ b,\ c,\ k</math> und <math>|a|</math> als dem Betrag von <math>a\,</math> gilt:

<math>\operatorname{ggT}(a,\ b)</math> <math>= \operatorname{ggT}(b, a)</math> Kommutativgesetz
<math>\operatorname{ggT}(a,\ b,\ c)</math> <math>= \operatorname{ggT}(a,\,\operatorname{ggT}(b,c)) = \operatorname{ggT}(\operatorname{ggT}(a,b),\,c)\qquad</math> Assoziativgesetz
<math>\operatorname{ggT}(k \cdot a,\ k \cdot b)</math> k| \cdot \operatorname{ggT}(a,\ b)</math> Distributivgesetz
<math>\operatorname{ggT}(\pm a, \pm b)</math> <math>= \operatorname{ggT}(a,\ b)</math>
<math>\operatorname{ggT}(a,\ 0)</math> a|</math>
<math>\operatorname{ggT}(a,\ 1)</math> <math>= 1</math>
<math>\operatorname{ggT}(a,\ a)</math> a|</math>
<math>\operatorname{ggT}(a,\ b)</math> <math>= \operatorname{ggT}(a,\ b \bmod a) \;=\; \operatorname{ggT}(a \bmod b,\ b) </math> für <math>a,b \ne 0</math>
<math>\operatorname{ggT}(a,\ b + a c)</math> <math>= \operatorname{ggT}(a,\ b)</math>
<math>\operatorname{ggT}(a,\ b)</math> <math>= \operatorname{ggT}(b-a,\ b)</math> mindestens für <math> 0 \le a \le b </math>
<math>\operatorname{ggT}(a)</math> a|</math>
<math>\operatorname{ggT}(a,\ b,\ c,\ \ldots)</math> <math>= \operatorname{ggT}(a,\,\operatorname{ggT}(b,\ c,\ \ldots))</math>
<math>\operatorname{ggT}(a_1\!\ldots\!a_n,b_1\!\ldots\!b_m)</math> <math>= \operatorname{ggT}(\operatorname{ggT}(a_1,\ldots a_n),\ \operatorname{ggT}(b_1,\ldots b_m))</math>
<math>\operatorname{ggT}(a,\ b) \cdot \operatorname{kgV}(a,\ b) </math> ab|</math> Verhältnis zwischen ggT und kgV
Ist <math>k </math> ein gemeinsamer Teiler von <math>a</math> und <math>b</math>, dann gilt:
<math>\qquad k</math>   teilt   <math>\operatorname{ggT}(a, b)</math>   und
<math>\qquad \operatorname{ggT}\Big(\tfrac{a}{k},\ \tfrac{b}{k}\Big) \qquad = \tfrac{\operatorname{ggT}(a,\ b)}{|k|}</math>
für <math>k \ne 0</math>
Ist <math>a \equiv b\ \bmod\ c</math>   (<math>a</math> und <math>b</math> sind kongruent modulo <math>c</math>), dann gilt:
<math>\qquad \operatorname{ggT}(a,\ c) \qquad \quad = \operatorname{ggT}(b,\ c)</math>

Aus der genannten Rechenregel <math>\operatorname{ggT}(a, 0) = |a|</math> ergibt sich speziell <math>\operatorname{ggT}(0, 0) = 0</math>. Dies ergibt sich auch daraus, dass jede ganze Zahl <math>a</math> (sogar die 0 selbst) wegen <math>a\cdot 0 = 0</math> Teiler der 0 ist, während umgekehrt 0 keine von 0 verschiedene Zahl teilt.

Hält man eines der beiden Argumente fest, dann ist <math>\operatorname{ggT}</math> eine multiplikative Funktion, denn für teilerfremde Zahlen <math>a</math> und <math>b</math> gilt:

<math>\operatorname{ggT}(a b, c) = \operatorname{ggT}(a, c) \cdot\operatorname{ggT}(b, c)</math>

Berechnung des größten gemeinsamen Teilers

[Bearbeiten]

Berechnung mittels Primfaktorzerlegung

[Bearbeiten]

Für die Berechnung mittels Primfaktorzerlegung zweier Zahlen <math>a</math> und <math>b</math> verwendet man alle Primfaktoren, die in jeder der beiden Zahlen vorkommen, mit der jeweils kleinsten vorkommenden Potenz.

Gegeben seien die Primfaktorzerlegungen:

<math> a = p_1^{\alpha_1} \cdot p_2^{\alpha_2} \cdot\;\cdots \;\cdot p_m^{\alpha_m} </math>
<math>\, b = p_1^{\beta_1} \cdot p_2^{\beta_2} \cdot\;\cdots \;\cdot p_m^{\beta_m} </math>

mit <math>\alpha_j</math> resp. <math>\beta_j</math> als den Exponenten des Primfaktors <math>p_j</math> der Zahl <math>a</math> resp. der Zahl <math>b</math> (für Vorlage:Zeile Da beide, <math>a</math> und <math>b</math>, ganze Zahlen sind, sind alle diese Exponenten <math>\ge 0</math>.

Der <math>\operatorname{ggT}(a,\ b)</math> berechnet sich zu

<math>\operatorname{ggT}(a,\ b) = \prod_{j=1}^m p_j^{\min(\alpha_j,\ \beta_j)}</math>

mit <math>\,\min(\alpha_j,\ \beta_j)</math> als dem kleinsten Exponenten des Primfaktors <math>p_j</math> beider Zahlen.

Beispiel

Gesucht ist der größte gemeinsame Teiler von <math>2970</math> und <math>12\,936</math>.

Die beiden Primfaktorzerlegungen lauten:

  • <math> \, \,\, 2970 \, = 2^{\color{Red }1} \cdot 3^{\color{Gray}3} \cdot 5^{\color{Gray}1} \cdot 7^{\color{Red }0} \cdot 11^{\color{Red}1}</math>
  • <math>12\,936 = 2^{\color{Gray}3} \cdot 3^{\color{Red }1} \cdot 5^{\color{Red }0} \cdot 7^{\color{Gray}2} \cdot 11^{\color{Red}1}</math>

Dabei sind die jeweils kleinsten Exponenten in Rot, die anderen (irrelevanten) in Grau gesetzt.

Die jeweils kleinsten Exponenten sind <math>({\color{Red }1},\ {\color{Red }1},\ {\color{Red }0},\ {\color{Red }0},\ {\color{Red }1})</math>. Daher folgt:

<math>\operatorname{ggT}(2970,\ 12\,936) = 2^{\color{Red}1} \cdot 3^{\color{Red}1} \cdot 5^{\color{Red}0} \cdot 7^{\color{Red}0} \cdot 11^{\color{Red}1} = 2 \cdot 3 \cdot 1 \cdot 1 \cdot 11 = 66.</math>

Euklidischer Algorithmus

[Bearbeiten]

Vorlage:Hauptartikel

Die Berechnung der Primfaktorzerlegung großer Zahlen und damit auch die Bestimmung des größten gemeinsamen Teilers über die Primfaktorzerlegungen ist sehr aufwändig bis hin zu praktisch unmöglich. Allerdings benötigt man auch gar nicht die Primfaktoren der beteiligten Zahlen, um den ggT zu bestimmen. Mit dem euklidischen Algorithmus existiert ein effizientes Verfahren, um den größten gemeinsamen Teiler zweier Zahlen zu berechnen. So braucht man von <math>1\,000\,000\,004\,147</math> und <math>1\,000\,000\,004\,149</math> gar nicht die Primfaktoren zu kennen, um zu erkennen, dass der <math>\operatorname{ggT}(1\,000\,000\,004\,147,\ 1\,000\,000\,004\,149) = 1</math> ist. Über die Primfaktoren-Zerlegung wäre das eine Lebensaufgabe, mit dem euklidischen Algorithmus ist das Ergebnis sofort zu sehen.

Der klassische euklidische Algorithmus (wie von Euklid vor 2300 Jahren beschrieben) berechnet den größten gemeinsamen Teiler, indem er nach einem gemeinsamen „Maß“ für die Längen zweier Linien sucht.<ref>Lambacher Schweizer: Mathematik für Gymnasien 5 Niedersachsen. Klett Verlag, Stuttgart 2006, ISBN 978-3-12-734551-3, S. 197.</ref> Dazu wird die kleinere zweier Längen von der größeren mehrfach abgezogen, bis ein Ergebnis übrig bleibt, das kleiner als die kleinere ist (erste zwei Schritte im Beispiel). Bei einer Differenz von 0 ist man fertig und die kleinere Länge das Ergebnis. Andernfalls wiederholt man dieses Abziehen – jetzt aber mit der kleineren Länge anstelle der größeren und der letzten Differenz anstelle der kleineren Länge (im Beispiel die Schritte drei bis sieben mit dem Rest 13 als der kleineren Länge und 65 als der jetzt größeren). Beispiel für den größten gemeinsamen Teiler von 143 und 65:

<math>\begin{array}{rl|l}

143 - 65 & = 78 \\

78 - 65 & =    13 & \scriptstyle\text{ Die entstandene Differenz 13 ist nun kleiner als der Subtrahend 65, die beiden Zahlen werden getauscht.} \\ 
65 - 13 & =    52 \\
52 - 13 & =    39 \\
39 - 13 & =    26 \\
26 - 13 & =    13 \\
13 - 13 & = \ \ 0 & \scriptstyle\text{ Die entstandene Differenz ist 0, der letzte Minuend ist das Ergebnis.} \\ 

\end{array}</math>

Der größte gemeinsame Teiler von 143 und 65 ist somit 13.

Beim modernen euklidischen Algorithmus wird in aufeinanderfolgenden Schritten jeweils eine Division mit Rest durchgeführt, wobei im nächsten Schritt der Divisor zum neuen Dividenden und der Rest zum neuen Divisor wird. Der Divisor, bei dem sich Rest 0 ergibt, ist der größte gemeinsame Teiler der Ausgangszahlen. Beispiel für die Ausgangszahlen 143 und 65:

<math>\begin{array}{rl|l}
  143 \,\,/\,\, 65 & =  \,\,\,  2 & \scriptstyle\text{ Rest 13} \\

\ \ 65 \,\,/\,\, 13 & = \,\,\, 5 & \scriptstyle\text{ Rest 0: Der letzte Divisor 13 ist das Ergebnis.} \\ \end{array}</math>

Somit ist 13 der größte gemeinsame Teiler von 143 und 65.<ref>Schüler-Duden: Die Mathematik I. Dudenverlag Mannheim, 1990, ISBN 3-411-04205-2, S. 100</ref> Beide Verfahren sind auch kombinierbar, bei kleineren Unterschieden kann man Subtrahieren, bei größeren die Division/Modulo-Operation verwenden.

In der Programmiersprache C kann der Algorithmus für zwei vorzeichenlose 64-Bit-Ganzzahlen wie folgt formuliert werden:

<syntaxhighlight lang="C">

  1. include <stdint.h>

uint64_t ggT_Div_Schleife (uint64_t a, uint64_t b) {

   if (a == 0) return b;
   if (b == 0) return a;
   do {
       uint64_t h = a % b;
       a = b;
       b = h;
   } while (b != 0);
   return a;

} </syntaxhighlight>

Eine Variante mit Rekursion (genauer: Endrekursion) lässt sich so formulieren:

<syntaxhighlight lang="c"> uint64_t ggT_Div_Rekursiv (uint64_t a, uint64_t b) {

   if (a == 0) return b;
   if (b == 0) return a;
   return ggT_Div_Rekursiv (b, a % b);

} </syntaxhighlight>

Beide Versionen erzeugen mit Optimierung durch Auflösung der Endrekursion identischen Code.<ref>Compiler Explorer</ref>

Steinscher Algorithmus

[Bearbeiten]

Neben dem euklidischen Algorithmus mit Modulo-Operation (bekanntere Version) und dem euklidischen Algorithmus mit rekursiver Subtraktion (ursprüngliche Version von Euklid) gibt es den steinschen Algorithmus als clevere Modifikation des euklidischen Algorithmus mit rekursiver Subtraktion.

Auf aktuellen CPUs<ref>C++, Microsoft Compiler, 64 bit-Code, Prozessoren um das Jahr 2020, Intel Cannon Lake, Raptor Lake, AMD ZEN 3, ZEN 4</ref> läuft der steinsche Algorithmus etwa dreimal langsamer als der euklidische Algorithmus mit Modulo-Operation.

Er vermeidet Divisionen und erkauft sich das durch viele schlecht vorhersagbare Sprünge. Erstere sind auf aktuellen CPUs mittlerweile relativ schnell (64-Bit-Ganzzahl- wie auch -Gleitkomma-Division: 14 ± 1 Takte Latenz), letztere bremsen aktuelle CPUs massiv aus (falsch vorhergesagter Sprung: 18 ± 3 Straftakte Latenz).

Im Gegensatz zum euklidischen Algorithmus mit rekursiver Subtraktion zeigt er nicht dessen asymptotisch extrem lange Laufzeiten im Worst-Case-Fall, wenn irgendwann bei der rekursiven Berechnung Operanden mit sehr unterschiedlicher Größe entstehen (die zur quasi endlosen rekursiven Subtraktions-Schleifen führen, siehe Kommentare).

Der Knuth-Algorithmus ist der von Donald E. Knuth optimierte Algorithmus auf heutige CPUs angewendet.

Das gemessene Laufzeitverhalten zeigt die folgende Tabelle. Die verwendete Implementierung des ggT der Code darunter. Alle vier Implementierungen liefern die gleichen numerischen Ergebnisse für <math>a,b > 0</math>.

Ausführungszeiten in Nanosekunden für gleichverteilte Argumente (1 … 2n − 1)<ref>AMD Ryzen 9 3900X, Microsoft VC 2022, Optionen /GL /O2</ref><ref>Compiler Explorer</ref>
Zahlen-
paare
ggT(64 bit, 64 bit) ggT(64 bit, 48 bit) ggT(64 bit, 32 bit)
Euklid
(Div)
Knuth Stein Euklid
(Sub)
Euklid
(Div)
Knuth Stein Euklid
(Sub)
Euklid
(Div)
Knuth Stein Euklid
(Sub)
103 142 122 462 Vorlage:0591 111 113 345 307 · 103 76 105 317 Vorlage:05,0 · 109
104 142 122 387 1024 111 113 352 495 · 103 78 105 322 11,9 · 109
105 142 122 382 Vorlage:0800 111 113 348 729 · 103 78 106 322 zu lang*)
106 142 122 379 Vorlage:0843 111 114 351 520 · 103 78 106 325 zu lang*)
107 142 122 380 1754 111 113 336 zu lang*) 78 106 322 zu lang*)

*) Messung abgebrochen, da Ausführungsdauer zu lang

Vorlage:Klappleiste/Anfang <syntaxhighlight lang="cpp">

  1. include <cstdint>
  2. include <bit> // für std::countr_zero
  3. include <algorithm> // für std::swap

using u64 = uint64_t;

// Steinscher Algorithmus u64 Stein(u64 a, u64 b) {

   if (b==0) return a;
   if (b&1)
       return a <= b ? Stein(a, b-a) : Stein(b, a-b);
   return a&1 ? Stein(a, b>>1) : Stein(a>>1, b>>1)<<1;

}

// Klassischer Euklidscher Algorithmus mit Subtraktion u64 Euklid_Sub(u64 a, u64 b) {

   while (a != b)
       if (a > b) a -= b;  // Wenn a ≫ b oder a ≪ b, dauert diese Ausführung längere Zeit.
       else       b -= a;  // Im schlimmsten Fall (UINT64_MAX, 1) mehrere hundert Jahre.
   return a;

}

// Euklidscher Algorithmus mit Division u64 Euklid_Div(u64 a, u64 b) {

   return b ? Euklid_Div(b, a % b) : a;

}

// Hilfsfunktion für Steinscher Algorithmus nach D. E. Knuth (für ab Mitte der 1980er Jahre entwickelte CPU EIN Maschinenbefehl) unsigned long CountZeros(u64 x) // liefert für x>0 die Position des niedrigsten gesetzten Bits, für x=0 ist das Verhalten irrelevant { // return std::countr_zero(x); // ab C++20 // unsigned long ret; ::_BitScanForward64 (& ret, x); return ret;// für Microsoft VS

   return __builtin_ffsll(x) - 1;                                // für GnuC, Clang, ellcc, Intel icc, nvc, zigC++

}

// Steinscher Algorithmus nach D. E. Knuth u64 Knuth(u64 a, u64 b) {

   if (a == 0 || b == 0)  // falls eines oder beide Argumente 0 sind,
       return a | b;      // ist das andere Argument oder 0 das Ergebnis
   unsigned long const zeros = CountZeros(a | b);  // LSB-Nullen, werden einmalig bestimmt
   a >>= CountZeros(a);
   do {
       b >>= CountZeros(b);
       if (a > b)
           std::swap (a, b); // vertausche Variablen, damit immer die kleinere von der größeren Zahl abgezogen wird
       b -= a;
   } while (b);
   return a << zeros;

} </syntaxhighlight> Vorlage:Klappleiste/Ende

Berechnung mittels Probieren

[Bearbeiten]

Die einfachste, aber meist langsamste Methode ist das Probieren:

Beginnend von der kleinsten der Zahlen (daher sollte diese klein sein) wird abwärts zählend die Teilbarkeit geprüft.

<math>\operatorname{ggT}(8,\,12)</math>

Teilbar durch 8?  8 ist Vorlage:0 teilbar, 12 ist nicht teilbar
Teilbar durch 7?  8 ist nicht teilbar, 12 ist nicht teilbar
Teilbar durch 6?  8 ist nicht teilbar, 12 ist Vorlage:0 teilbar
Teilbar durch 5?  8 ist nicht teilbar, 12 ist nicht teilbar
Teilbar durch 4?  8 ist Vorlage:0 teilbar, 12 ist Vorlage:0 teilbar <math>\quad\longrightarrow \operatorname{ggT}(8,\,12) = 4</math>

<math>\operatorname{ggT}(6,\,12)</math>

Teilbar durch 6?  6 ist Vorlage:0 teilbar, 12 ist Vorlage:0 teilbar <math>\quad\longrightarrow \operatorname{ggT}(6,\,12) = 6</math>

<math>\operatorname{ggT}(6,\,93\,099)</math>

Teilbar durch 6?  6 ist Vorlage:0 teilbar, 93099 ist nicht teilbar, da ungerade
Teilbar durch 5?  6 ist nicht teilbar, 93099 ist nicht teilbar, da nicht auf 0 oder 5 endend
Teilbar durch 4?  6 ist nicht teilbar, 93099 ist nicht teilbar, da ungerade
Teilbar durch 3?  6 ist Vorlage:0 teilbar, 93099 ist offensichtlich teilbar <math>\quad\longrightarrow \operatorname{ggT}(6,\ 93\,099) = 3</math>

Berechnung für mehrere Zahlen

[Bearbeiten]

Vorlage:Anker

Berechnung mittels Primfaktorzerlegung

[Bearbeiten]

Die Berechnung mittels Primfaktorzerlegung lässt nativ die Berechnung für eine beliebige Menge von Zahlen <math>a_1, \ldots, a_k</math> zu. Man verwendet alle Primfaktoren, die in jeder der Zahlen vorkommen, mit der jeweils kleinsten vorkommenden Potenz.

Gegeben seien die Primfaktorzerlegungen:

<math>

\begin{array}{ccccc} a_1 = & p_1^{e_{1,1}} & p_2^{e_{1,2}} & \cdots & p_m^{e_{1,m}} \\ a_2 = & p_1^{e_{2,1}} & p_2^{e_{2,2}} & \cdots & p_m^{e_{2,m}} \\ \vdots\quad & \vdots\; & \vdots\; & \ddots & \vdots\; \\ a_k = & p_1^{e_{k,1}} & p_2^{e_{k,2}} & \cdots & p_m^{e_{k,m}} \\ \end{array} </math>

mit <math>e_{i,j} \geq 0</math> dem jeweiligen Exponenten des Primfaktors <math>p_j</math> der Zahl <math>a_i</math> (<math>i = 1, \ldots, k,\;\;j = 1, \ldots, m</math>).

Der ggT berechnet sich zu (mit <math>\min(e_{1,j},\,e_{2,j},\,\ldots, e_{k,j})</math> dem kleinsten Exponenten des Primfaktors <math>p_j</math> aller Zahlen):

<math>\operatorname{ggT}(a_1, a_2, \ldots, a_k) = \prod_{j=1}^m p_j^{\min(e_{1,j},\,e_{2,j},\,\ldots, e_{k,j})}\ </math>.
Beispiel

Gesucht ist der kleinste gemeinsame Teiler von <math>1574,\ 1760</math> und <math>1925</math>.

Die Primfaktorenzerlegung lautet, wobei die jeweils kleinsten Exponenten in Rot, die anderen (irrelevanten) in Grau gesetzt sind:

<math>1584 = 2^{\color{Gray}4} \cdot 3^{\color{Gray}2} \cdot 5^{\color{Red }0} \cdot 7^{\color{Red }0} \cdot 11^{\color{Red }1}</math>
<math>1760 = 2^{\color{Gray}5} \cdot 3^{\color{Red }0} \cdot 5^{\color{Gray}1} \cdot 7^{\color{Red }0} \cdot 11^{\color{Red }1}</math>
<math>1925 = 2^{\color{Red }0} \cdot 3^{\color{Red }0} \cdot 5^{\color{Gray}2} \cdot 7^{\color{Gray}1} \cdot 11^{\color{Red }1}</math>,

die kleinsten Exponenten sind <math>({\color{Red }0},\ {\color{Red }0},\ {\color{Red }0},\ {\color{Red }0},\ {\color{Red }1})</math>. Daher folgt:

<math>\operatorname{ggT}(1584,\ 1760,\ 1925) = 2^{\color{Red}0} \cdot 3^{\color{Red}0} \cdot 5^{\color{Red}0} \cdot 7^{\color{Red}0} \cdot 11^{\color{Red}1} = 1 \cdot 1 \cdot 1 \cdot 1 \cdot 11 = 11.</math>
Bemerkung

Bei Anwendung des jeweils größten Exponenten erhält man (analog) das kleinste gemeinsame Vielfache:

<math>1584 = 2^{\color{Gray}4} \cdot 3^{\color{Red }2} \cdot 5^{\color{Gray}0} \cdot 7^{\color{Gray}0} \cdot 11^{\color{Red }1}</math>
<math>1760 = 2^{\color{Red }5} \cdot 3^{\color{Gray}0} \cdot 5^{\color{Gray}1} \cdot 7^{\color{Gray}0} \cdot 11^{\color{Red }1}</math>
<math>1925 = 2^{\color{Gray}0} \cdot 3^{\color{Gray}0} \cdot 5^{\color{Red }2} \cdot 7^{\color{Red }1} \cdot 11^{\color{Red }1}</math>,

die größten Exponenten sind <math>({\color{Red}5},\ {\color{Red }2},\ {\color{Red }2},\ {\color{Red }1},\ {\color{Red }1})</math>. Daher folgt:

<math>\operatorname{kgV}(1584,\ 1760,\ 1925) = 2^{\color{Red}5} \cdot 3^{\color{Red}2} \cdot 5^{\color{Red}2} \cdot 7^{\color{Red}1} \cdot 11^{\color{Red}1} = 32 \cdot 9 \cdot 25 \cdot 7 \cdot 11 = 554\,400.</math>

Das Produkt aus <math>\operatorname{ggT}</math> und <math>\operatorname{kgV}</math> ist <math>6\,098\,400</math>, das der drei Zahlen ist <math>5\,366\,592\,000</math>, womit man sieht, dass die Multiplikationsregel für <math>\operatorname{ggT}</math> und <math>\operatorname{kgV}</math> für mehr als zwei Zahlen nicht gilt.

Berechnung mittels Verkettung

[Bearbeiten]

Wie wir schon festgestellt haben, ist die Berechnung über die Primfaktorenzerlegung nicht die effizienteste Methode.

Die Berechnung des <math>\operatorname{ggT}</math> erfolgt durch Verkettung. Die Reihenfolge (sowohl kommutativ wie assoziativ) ist dabei irrelevant:

<math>\operatorname{ggT}(a,b,c) =
      \operatorname{ggT}(\operatorname{ggT}(a,b),c) = 
      \operatorname{ggT}(a,\operatorname{ggT}(b,c))

</math>

<math>\qquad\qquad\quad = \operatorname{ggT}(b,a,c) =
      \operatorname{ggT}(b,\operatorname{ggT}(c,a)) = \ldots 

</math>

Für die Berechnung von <math>\operatorname{ggT}(1584,\,1760,\,1925)</math> berechnet man z. B. zuerst

<math>\operatorname{ggT}(1584,\,1760) = 176\qquad </math> und im zweiten Schritt
<math>\operatorname{ggT}(\ \ 176,\,1925) = \ \ 11</math>.

Der Hintergrund, warum das funktioniert, ist die Eigenschaft des Minimum-Operators:

<math>\min(\mathcal{A} \cup \mathcal{B}) = \min(\min(\mathcal{A}),\,\min(\mathcal{B}))</math>,  der sich durch das Anwenden auf die Exponenten auf die <math>\operatorname{ggT}</math> durchschlägt:
<math>\operatorname{ggT}(\mathcal{A} \cup \mathcal{B}) = \operatorname{ggT}(\operatorname{ggT}(\mathcal{A}),\,\operatorname{ggT}(\mathcal{B}))</math>.

<math>\mathcal{A}</math> und <math>\mathcal{B}</math> bezeichnen hier jeweils nichtleere Mengen an ganzen Zahlen, d. h. man kann eine Menge <math>\mathcal{M}</math> in (sinnvollerweise, aber nicht notwendigerweise echte) nichtleere Teilemengen <math>\emptyset \subset \mathcal{A} \subseteq \mathcal{M}</math> und <math>\emptyset \subset \mathcal{B} \subseteq \mathcal{M}</math> mit <math>\mathcal{A} \cup \mathcal{B} = \mathcal{M}</math> zerlegen und dann die Operation rekursiv anwenden.

Dies rechtfertigt die Schreibweise <math>\operatorname{ggT}(a_1,\ a_2 \ldots a_n)</math>.<ref>Harald Scheid: Einführung in die Zahlentheorie. Klett Verlag, Stuttgart, 1972, ISBN 3-12-983240-8, S. 78.</ref>

Bemerkung

Das Gleiche gilt für das kleinste gemeinsame Vielfache, nur dass hier das Minimum jeweils durch das Maximum (der Exponenten) ersetzt wird.

Berechnen für Polynome

[Bearbeiten]

Die Bestimmung des <math>\operatorname{ggT}</math> für Polynome läuft auf geschicktes Raten und Polynomdivisionen bzw. auf die Bestimmung der Nullstellen der Polynome hinaus.

Letzteres erfolgt folgendermaßen:

<math>\operatorname{ggT}\left( \sum_{i=0}^k a_i x^i ,\; \sum_{i=0}^m b_i x^i \right) =

\operatorname{ggT}\left( a_k \prod_{i=0}^k (x - x_{a,i}) ,\; b_m \prod_{i=0}^m (x - x_{b,i}) \right) =

\operatorname{ggT}(a_k,\,b_m) \prod_{x_i \in \mathcal{M}} \!\!(x - x_i) </math> wobei <math>\mathcal{M}</math> die Menge aller paarweise identischen Nullstellen der beiden Polynome umfasst.

Beispiel
<math>\operatorname{ggT} (2 x^5 - 28 x^4 + 138 x^3 - 296 x^2 + 280 x - 96,\;6 x^5 - 72 x^4 + 312 x^3 - 612 x^2 + 546 x - 180) = </math>
<math>\operatorname{ggT} (2(x-1)(x-1)(x-2)(x-4)(x-6),\;6(x-1)(x-1)(x-2)(x-3)(x-5))</math>.

Die gemeinsamen Nullstellen sind die doppelte Nullstelle <math>+1</math> und die einfache Nullstelle <math>+2</math>, weiterhin ist das <math>\operatorname{ggT}(2,\,6) = 2</math>.

<math>\operatorname{ggT} (2 x^4 - 20 x^3 + 64 x^2 - 76 x + 30,\ 2 x^4 - 16 x^3 + 42 x^2 - 44 x + 16) = 2(x-1)(x-1)(x-2) = 2 x^3 - 8 x^2 + 10 x - 4</math>.

Der rationale Bruch

<math>\frac{2 x^5 - 28 x^4 + 138 x^3 - 296 x^2 + 280 x - 96}{6 x^5 - 72 x^4 + 312 x^3 - 612 x^2 + 546 x - 180} </math>

lässt sich für <math>x \neq 1,\; 2\ </math> kürzen zu:

<math>\frac{(x - 6) (x - 4)}{3 (x - 5) (x - 3)} </math>

Lemma von Bézout

[Bearbeiten]

Vorlage:Hauptartikel

Nach dem Lemma von Bézout lässt sich der größte gemeinsame Teiler zweier ganzer Zahlen <math>m</math> und <math>n</math> als Linearkombination von <math>m</math> und <math>n</math> mit ganzzahligen Koeffizienten darstellen:

  • <math>\operatorname{ggT}(m,\,n) = s \cdot m + t \cdot n</math>  mit <math>s,t\in\mathbb{Z}</math><ref>Lemma von Bézout.</ref>

Beispielsweise besitzt der größte gemeinsame Teiler von <math>12</math> und <math>18</math> die folgende Darstellung:

  • <math>\operatorname{ggT}(12,\,18) = 6 = (-1)\cdot 12 + 1\cdot 18</math>

Die Koeffizienten <math>s</math> und <math>t</math> können mit dem erweiterten euklidischen Algorithmus berechnet werden.

Sonderfälle

[Bearbeiten]

Für gerades <math>e</math>, ungerades <math>d</math> sowie ganzes <math>i,j,k</math> gilt:

<math>\begin{array}{lll}

\operatorname{ggT}(e-1,\ e+1) & = 1 \\ \operatorname{ggT}(2e,\ e^2-1) & = 1 \\ \operatorname{ggT}(2d,\ d^2-1) & = 2 \\ \operatorname{ggT}(2k(k+1),\ 2k+1) & = 1 \\ \operatorname{ggT}(4k,\ 4k^2-1) & = 1 \\ \operatorname{ggT}(i-j,\ 1+i+j) & = \operatorname{ggT}(1+2j,\ 1+2i) \\ \operatorname{ggT}(a,\ b) & = 2 \operatorname{ggT}\big(\tfrac{a}{2},\ \tfrac{b}{2}\big) & \text{falls } a \text{ und } b \text{ gerade} \\ \operatorname{ggT}(a,\ b) & = \operatorname{ggT}\big(\tfrac{a}{2},\ b\big) & \text{falls } a \text{ gerade und } b \text{ ungerade} \\ \operatorname{ggT}(a,\ b) & = \operatorname{ggT}\big(\tfrac{a-b}{2},\ b\big) & \text{falls } a \text{ und } b \text{ ungerade} \\ \end{array} </math>

Setzt man eine Primzahl aus zwei echten Summanden zusammen, gilt für diese stets Teilerfremdheit:

Aus <math>\;p = a+b, \; 0 < b \le a < p, \; a \in \N,\; b \in \N,\; p \in \mathbb P\;</math> folgt <math>\;\operatorname{ggT}(a,b)=1</math>.

Anwendungen

[Bearbeiten]

Kürzen von Brüchen

[Bearbeiten]

Beim Kürzen wird ein gemeinsamer Faktor von Zähler und Nenner eines Bruches entfernt, wobei sich der Wert des Bruches nicht ändert, z. B. <math>\tfrac{12}{18} = \tfrac{6 \ \!\cdot \ \!2}{9 \ \!\cdot\ \! 2} = \tfrac{6}{9}</math>. Kürzt man mit dem größten gemeinsamen Teiler von Zähler und Nenner, entsteht ein Bruch, der nicht weiter kürzbar ist.<ref>Lutz Engelmann (Hrsg.): Kleiner Leitfaden Mathematik. Paetec, Berlin 1997, ISBN 3-89517-150-6, S. 51/2.</ref> Zum Beispiel ist <math>\operatorname{ggT}(12,\,18) = {\color{Red} 6}</math>, also

<math>\frac{12}{18} = \frac{2 \cdot {\color{Red} 6}}{3 \cdot {\color{Red} 6}} = \frac{2}{3}</math>

Vorlage:AnkerEin Bruch mit Zähler <math>a</math> und Nenner <math>b</math>, bei dem <math>\operatorname{ggT}(a,b) = 1</math> ist, ist nicht weiter kürzbar. Er wird voll gekürzt<ref>Schüler-Duden: Die Mathematik I. Dudenverlag, Mannheim. Leipzig, Wien, Zürich 1990, ISBN 3-411-04205-2, S. 48.</ref>, in der Mathematik vollständig oder maximal gekürzter Bruch genannt. In der englischsprachigen Literatur wird er „Simplified fraction“ oder „Reduced fraction“ genannt.

Zusammenhang zwischen größtem gemeinsamen Teiler (ggT) und kleinstem gemeinsamen Vielfachen (kgV)

[Bearbeiten]
Satz
<math>\operatorname{ggT}(a,b) \cdot \operatorname{kgV}(a,b) = a \cdot b</math>
Beweis
Nachweis für positive ganze Zahlen <math>m</math> und <math>n</math>, alle anderen Fälle lassen sich analog behandeln. Sei <math>k = \operatorname{kgV}(m,n)</math>, dann ist <math>k</math> auch Teiler des Produkts <math>m \cdot n</math>. Die Zahl <math>g</math> enthalte dagegen alle Primfaktoren des Produkts <math>m \cdot n</math>, die <math>k</math> nicht enthält. Betrachtet man, wie der <math>\operatorname {ggT}(m,n)</math> aus der Primfaktordarstellung des Produkts aus <math>m</math> und <math>n</math> berechnet wird, dann folgt <math>g = \operatorname{ggT}(m,n)</math>. Daraus ergibt sich die obige Gleichung.<ref>§ 4. ggT und kgV. In: math-www.uni-paderborn.de. S. 14.</ref>

Weitere algebraische Strukturen mit ggT

[Bearbeiten]

Der Begriff des <math>\operatorname{ggT}</math> baut auf dem Begriff der Teilbarkeit auf, wie er in Ringen definiert ist. Man beschränkt sich bei der Diskussion des <math>\operatorname{ggT}</math> auf nullteilerfreie Ringe, im kommutativen Fall sind das die Integritätsringe.

Ein Integritätsring, in dem je zwei Elemente einen <math>\operatorname{ggT}</math> besitzen, heißt ggT-Ring oder ggT-Bereich. (In einem <math>\operatorname{ggT}</math>-Ring haben je zwei Elemente auch ein Vorlage:Nowrap

Im Allgemeinen besitzen solche Ringe keine Halbordnung, die antisymmetrisch ist, wie die ganzen oder die natürlichen Zahlen eine haben. Häufig ist die Teilbarkeitsrelation, die eine Quasiordnung ist, die einzige Ordnungsrelation. Deshalb lässt sich der <math>\operatorname{ggT}</math> gegebenenfalls nicht mehr eindeutig als nicht-negativ normieren, sondern nur bis auf Assoziiertheit bestimmen. Zwei Elemente <math>a</math> und <math>b</math> sind assoziiert, in Zeichen <math>a \sim b</math>, wenn es eine Einheit <math>\epsilon</math> mit <math>a = b \cdot \epsilon</math> gibt.

Wir erweitern den Begriff des <math>\operatorname{ggT}</math> auf die Menge aller größten gemeinsamen Teiler der Elemente einer Teilmenge <math>M</math> eines Ringes <math>R</math>, formal:

<math>d \in \operatorname{ggT}(M)\quad:\Longleftrightarrow\quad \forall y\in R: (\forall x\in M: y\mid x)\Leftrightarrow y\mid d</math>.

In Worten: Die Teiler von <math>d</math> sind genau die Elemente aus <math>R</math>, die alle Elemente aus <math>M</math> teilen. Die <math>\operatorname{ggT}</math> sind untereinander assoziiert.

Polynomringe

[Bearbeiten]

Man kann den <math>\operatorname{ggT}</math> z. B. auch für Polynome bilden. Statt der Primfaktorzerlegung nimmt man hier die Zerlegung in irreduzible Faktoren:

<math>\begin{align}

f(X,Y) &= X^2 + 2XY + Y^2 = (X + Y)^2\\ g(X,Y) &= X^2 - Y^2 = (X + Y) (X - Y) \end{align}</math>

Dann ist

<math>\operatorname{ggT}(f, g) \sim X + Y</math>

Der Polynomring <math>\Q[X]</math> in einer Variablen <math>X</math> ist euklidisch. Dort gibt es zur Berechnung des <math>\operatorname{ggT}</math> eine Division mit Rest.

Gaußscher Zahlenring

[Bearbeiten]

Im gaußschen Zahlenring <math>\Z+\mathrm{i}\Z</math> ist der größte gemeinsame Teiler von <math>2</math> und <math>1 + 3\mathrm{i}</math> gerade <math>1 + \mathrm{i}</math>, denn <math>2 = -\mathrm{i} (1 + \mathrm{i})^2</math> und <math>1 + 3\mathrm{i} = (1 + \mathrm{i}) (2 + \mathrm{i})</math>. Genau genommen ist <math>1 + \mathrm{i}</math> nur ein größter gemeinsamer Teiler, da alle zu dieser Zahl assoziierten Zahlen ebenfalls größte gemeinsame Teiler sind. (Die Einheiten sind <math>\pm 1, \pm \mathrm{i}</math>.)

Integritätsringe

[Bearbeiten]

Im Integritätsring <math>R = \mathbb{Z}[\sqrt{-3}]</math> haben die Elemente

<math>a:= 4 = 2\cdot 2 = (1 + \sqrt{-3})(1 - \sqrt{-3}),\quad b:= (1 + \sqrt{-3})\cdot 2</math>

keinen <math>\operatorname{ggT}</math>: Die Elemente <math>1 + \sqrt{-3}</math> und <math>2</math> sind zwei maximale gemeinsame Teiler, denn beide haben den gleichen Betrag, aber diese zwei Elemente sind nicht zueinander assoziiert. Also gibt es keinen <math>\operatorname{ggT}</math> von <math>a</math> und <math>b</math>.

Die genannten Elemente <math>1+\sqrt{-3}</math> und <math>2</math> haben aber ihrerseits einen <math>\operatorname{ggT}</math>, nämlich <math>1</math>. Dagegen haben sie kein <math>\operatorname{kgV}</math>, denn wenn <math>v</math> ein <math>\operatorname{kgV}</math> wäre, dann folgt aus der „ggT-kgV-Gleichung“, dass <math>v</math> assoziiert zu <math>k:=(1 + \sqrt{-3})\cdot2</math> sein muss. Das gemeinsame Vielfache <math>4</math> ist jedoch kein Vielfaches von <math>k</math>, also ist <math>k</math> kein <math>\operatorname{kgV}</math> und die beiden Elemente haben gar kein <math>\operatorname{kgV}</math>.

Ist <math>R</math> ein Integritätsring und haben die Elemente <math>a</math> und <math>b</math> ein <math>\operatorname{kgV}</math>, dann haben sie auch einen <math>\operatorname{ggT}</math>, und es gilt die Gleichung:

<math>a \cdot b \sim \operatorname{ggT}(a, b) \cdot \operatorname{kgV}(a, b)</math>

Ein euklidischer Ring ist ein Hauptidealring, der ein faktorieller Ring ist, der schließlich ein ggT-Ring ist. Ebenso ist jeder Hauptidealring ein Bézoutring, der wiederum stets ein ggT-Ring ist.

Ein Beispiel für einen nicht-kommutativen ggT-Ring sind die Hurwitzquaternionen.

Analytische Zahlentheorie

[Bearbeiten]

In der elementaren Zahlentheorie gehört der größte gemeinsame Teiler <math>t</math> von zwei ganzen Zahlen <math>m,n\in\Z\setminus \lbrace 0 \rbrace</math> zu den wichtigsten Grundkonzepten. Man schreibt dort regelmäßig <math>t=(m,n)</math> und meint damit dann den positiven <math>\operatorname{ggT}</math>, geht also von <math>t\in\N</math> aus.

In der analytischen Zahlentheorie kann die ggT-Funktion <math>\Z\setminus \lbrace 0 \rbrace \rightarrow \N;\;m\mapsto (m,n)</math> in einer Variablen für festes <math>n\in\N\setminus \lbrace 0 \rbrace</math> analytisch zu einer ganzen Funktion fortgesetzt werden. → Siehe Ramanujansumme.

Einzelnachweise

[Bearbeiten]

<references />

Literatur

[Bearbeiten]
[Bearbeiten]

Vorlage:Wikibooks