Euklidischer Algorithmus
Variante 1
Wir beginnen mit und .
Variante 2
def ggT(a, b):
a = [a, b]
while a[-1] > 0:
a.append(a[-2] % a[-1])
return a[-2]
Variante 3
Ohne explizites merken der Zahlen in .
def ggT(a, b):
while b > 0:
a, b = b, a % b
return a
Laufzeit
Die Laufzeit des Algorithmus lässt sich mit den Fibonacci-Zahlen gut in Abhängigkeit von abschätzen.
Dafür sei die Zahl an Schritten, die wir abschätzen wollen.
Wir verwenden das rekursive Schema des Algorithmus wobei wir die und setzen. Führen wir damit das ganze Schema durch erhalten wir zum Schluss . Wir können nun die Folge mit den Fibonacci-Zahlen vergleichen und sehen, dass diese immer größer gleich sind: Da wir bereits gut abschätzen können, lässt sich das ganze auch für abschätzen. Wir erhalten also:
Der Algorithmus ist also sehr effizient und schnell.