import Foundation

func ggT(a: Int, b: Int) -> Int {
     /* Die Funktion ggT berechnet den größten gemeinsamen Teiler zweier 
        Zahlen a und b. Die Zwischenergebnisse und das Endergebnis der Funktion
        ggT werden in einer Variable gespeichert. Dafür wird die Variable
        resultat deklariert. */ 
    var resultat : Int
    
    /* Im Fall, dass die erste Zahl a gleich 0 ist, ist das Ergebnis gleich b
       (der zweiten Zahl). Im Fall, dass a jedoch ungleich 0 ist, wird die ggT
       Funktion mit den geänderten beziehungsweise angepassten 
       Argumenten ggT(b MOD a, a). */ 
    if a == 0 {
        resultat = b
    } else {
        resultat = ggT(a: b % a, b: a)
    }
    
    return resultat
}

func kgV(a: Int, b: Int) -> Int {
    /* Die Funktion kgV soll das kleinste gemeinsame Vielfach zweier Zahlen
       a und b berechnen. Die zwei Zahlen wurden als Argument an die kgV 
       Funktion übergeben. Um das Ergebnis zu speichern, wird in einer Variable
       gespeichert. Dafür wird die Variable resultat deklariert. */ 
    var resultat : Int
    
    /* Um das kgV zu berechnen werden die zwei Zahlen a und b zuerst 
       multipliziert und das Ergebnis wird dann durch den größten gemeinsamen 
       Teiler der zwei Zahlen a und b geteilt. Das Ergebnis wird in der 
       Variablen resultat gespeichert.*/ 
    resultat = a * b / ggT(a: a, b: b)
    
    return resultat
}

/* Main 
Das Programm berechnet das kleinste gemeinsame Vielfache, kurz kgV, zweier Zahlen.
Um die erste Zahl zu speichern, wird die Variable A deklariert.*/ 
var a : Int

// Um die zweite Zahl zu speichern, wird die Variable B deklariert.
var b : Int

// Um das Ergebnis zu speichern, wird die Variable ergebnis deklariert.
var ergebnis : Int

print("Geben Sie die erste Zahl an:")
a = Int(readLine()!)!
print("Geben Sie die zweite Zahl an:")
b = Int(readLine()!)!

/* Die Fallunterscheidung, ob die erste Zahl größer als die zweite Zahl ist, 
erleichtert das weitere Vorgehen. Je nach Ergebnis wird Funktion kgV mit den 
Argumenten a, b beziehungsweise mit der getauschten Variante b, a aufgerufen. 
An dem Ergebnis ändert sich dadurch aber nichts, da kgV(a, b) = kgV(b, a) ist.*/

/* Unabhängig vom Ausgang des Vergleichs wird die Funktion kgV aufgerufen, die
 wiederum selbst intern eine weitere Funktion, nämlich ggT (größter gemeinsamer
 Teiler) aufruft. Sodass hier eine Funktion aufgerufen wird, die wieder eine 
 Funktion aufruft, es sind also ineinander verschachtelte Funktionen.*/ 

if a > b {
    ergebnis = kgV(a: a, b: b)
} else {
    ergebnis = kgV(a: b, b: a)
}
print("Das kleinste gemeinsame Vielfache ist:")
print(ergebnis)
        
        
akzeptieren ablehen

Diese Website verwendet Cookies und Zählpixel, um Ihnen die bestmögliche Nutzung dieser Website zu ermöglichen.Learn more about cookies sehen Sie auch Datenschutz