-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathggT.py
More file actions
executable file
·36 lines (29 loc) · 944 Bytes
/
ggT.py
File metadata and controls
executable file
·36 lines (29 loc) · 944 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/env python3
"""
Dieses Programm implementiert den euklidischen Algorithmus zur Bestimmung des größten gemeinsamen Teilers zweier Zahlen rekursiv.
(In Level 3 findet sich eine iterative Implementation.)
"""
# Berechnung
def ggT(a: int, b: int) -> int:
# Beide Zahlen sollten positiv sein.
# Wir nehmen einfach den Betrag.
a = abs(a)
b = abs(b)
# a soll größer sein als b.
# Falls das nicht bereits der Fall ist,
# tauschen wir die beiden einfach.
if b > a:
return ggT(b, a)
# Wenn b Null ist, sind wir fertig und a ist der ggT.
# Ansonsten müssen wir (nochmal) rechnen.
if b == 0:
return a
# Teile a mit Rest durch b;
# setze a auf b
# und b auf den Rest.
return ggT(b, a%b)
# Eingabe
a = int(input("erste Zahl eingeben: "))
b = int(input("zweite Zahl eingeben: "))
# Ausgabe
print("Der größte gemeinsame Teiler dieser Zahlen ist:", ggT(a, b))