using System;

public class MyProgram
{
    public static void Main(string[] args)
    {
        // Das Programm berechnet das kleinste gemeinsame Vielfache, kurz kgV, zweier Zahlen.
        // Um die erste Zahl zu speichern, wird die Variable A deklariert.
        int a;
        
        // Um die zweite Zahl zu speichern, wird die Variable B deklariert.
        int b;
        
        // Um das Ergebnis zu speichern, wird die Variable ergebnis deklariert.
        int ergebnis;
        
        Console.WriteLine("Geben Sie die erste Zahl an:");
        a = (int) inputValue();
        Console.WriteLine("Geben Sie die zweite Zahl an:");
        b = (int) inputValue();
        
        // 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, b);
        }
        else
        {
            ergebnis = KgV(b, a);
        }
        Console.WriteLine("Das kleinste gemeinsame Vielfache ist:");
        Console.WriteLine(ergebnis);
    }
    
    public static int GgT(int a, int b)
    {
        // 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.
        int resultat;
        
        // 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(b % a, a);
        }
        
        return resultat;
    }
    
    public static int KgV(int a, int b)
    {
        // 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.
        int resultat;
        
        // 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 = (int) ((double) (a * b) / GgT(a, b));
        
        return resultat;
    }
    
    // .NET kann nur einzelne Zeichen oder ganze Zeilen aus der  Konsole lesen. 
    // Die folgende Funktion löst das Problem.
    private static double inputValue()
    {
        double result;
        while (!double.TryParse(Console.ReadLine(), out result));
        return result;
    }
}
        
        
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