import Foundation
func recGGT(m: Int, n: Int) -> Int {
/* Die Funktion recGGT berechnet den größten gemeinsamen Teiler zweier
Zahlen. Die zwei Zahlen wurden der Funktion bereits als Argument übergeben.*/
/* Die Variable r ist eine Hilfsvariable, die für die spätere Berechnung
benötigt wird.*/
var r : Int
/* Das Ergebnis der Berechnung wird am Ende in der Variablen resultat
gespeichert.*/
var resultat : Int
/* Nun wird geprüft, ob die zweite Zahl m kleiner als die erste Zahl n ist,
falls ja, wird die Berechnung gestartet und im Fall das m größer ist,
wird die Funktion recGGT mit vertauschten Argumenten, also recGGT(n, m)
aufgerufen.*/
if m < n {
resultat = recGGT(m: n, n: m)
}
r = m % n
/* Solange die Variable r ungleich 0 ist, wird die Funktion recGGT(n, r)
aufgerufen. Im Fall, dass die Variable r gleich 0 ist, ist die Berechnung
beendet. Und das Ergebnis wird in der Variablen resultat gespeichert.*/
if r == 0 {
resultat = n
} else {
resultat = recGGT(m: n, n: r)
}
return resultat
}
// Main
// Für die erste Zahl wird die Variable m deklariert.
var m : Int
// Für die zweite Zahl wird die Variable n deklaiert.
var n : Int
print("Geben Sie die erste Zahl an: ")
// Der eingegebene Wert wird an die Variable m übergeben.
m = Int(readLine()!)!
print("Geben Sie die zweite Zahl an:")
// Der eingegebene Wert wird an die Variable n übergeben.
n = Int(readLine()!)!
/* Die Funktion recGGT wird mit den Zahlen n und m als Argument aufgerufen und
liefert als Ergebnis den größten gemeinsamen Teiler der beiden Zahlen zurück.*/
print(recGGT(m: m, n: n))