def ggt(a, b): if b == 0: return a else: return ggt(b, a % b) # Beispielwerte a = 48 b = 18 ergebnis = ggt(a, b) print(f'GGT von {a} und {b} ist: {ergebnis}')
Schritt | a | b | a % b | Rekursiver Aufruf (ggt(b, a % b)) | Rückgabewert |
---|---|---|---|---|---|
1 | 48 | 18 | 12 | ggt(18, 12) | - |
2 | 18 | 12 | 6 | ggt(12, 6) | - |
3 | 12 | 6 | 0 | ggt(6, 0) | - |
4 | 6 | 0 | - | - | 6 |
a = 48
und b = 18
. Da b
nicht 0 ist, erfolgt ein rekursiver Aufruf mit den neuen Werten ggt(18, 12)
.a = 18
und b = 12
ausgeführt. Der Rest von 18 % 12
ist 6, daher wird ggt(12, 6)
rekursiv aufgerufen.a = 12
und b = 6
. Der Rest von 12 % 6
ist 0, und der rekursive Aufruf erfolgt mit ggt(6, 0)
.b = 0
, daher gibt der Algorithmus den Wert von a
zurück, der 6 ist. Dies beendet die Rekursion und der GGT ist 6.