C#: Wie kann ich den nächstmöglichen Divisor finden?

Hey, hier erst einmal mein Code:

using System;

class Matheaufgabe
{
  static void Main()
  {
    bool weitermachen = true;
    Console.WriteLine("Möchten Sie eine Aufgabe berechnen? [Ja|Nein]");
    string antwort = Console.ReadLine().ToLower();

    while (antwort != "ja" && antwort != "nein")
    {
      Console.WriteLine("Bitte geben Sie 'Ja' oder 'Nein' ein.");
      antwort = Console.ReadLine().ToLower();
    }

    if (antwort == "ja")
    {
      while (weitermachen)
      {
        Random random = new Random();
        int zahl1;
        int zahl2;
        int ergebnis;
        char operatorChar;
        int operatorIndex = random.Next(4);

        if (operatorIndex == 3)
        {
          zahl2 = random.Next(1, 101);
          zahl1 = random.Next(zahl2, 101);
        }
        else
        {
          zahl1 = random.Next(1, 101);
          zahl2 = random.Next(1, 101);
        }

        switch (operatorIndex)
        {
          case 0:
            operatorChar = '+';
            ergebnis = zahl1 + zahl2;
            break;
          case 1:
            operatorChar = '-';
            ergebnis = zahl1 - zahl2;
            break;
          case 2:
            operatorChar = '*';
            ergebnis = zahl1 * zahl2;
            break;
          default:
            operatorChar = '/';
            ergebnis = zahl1 / zahl2;
            break;
        }

        if (operatorChar == '/' && ergebnis % zahl2 != 0)
        {
          while (ergebnis % zahl2 != 0)
            zahl2--;

          ergebnis = zahl1 / zahl2;
        }

        Console.WriteLine($"Wie lautet das Ergebnis von {zahl1.ToString()} {operatorChar.ToString()} {zahl2.ToString()}?");
        int benutzerErgebnis;
        bool validInput;

        do
        {
          validInput = int.TryParse(Console.ReadLine(), out benutzerErgebnis);

          if (!validInput)
            Console.WriteLine("Bitte geben Sie eine Zahl ein.");
        }
        while (!validInput);

        if (benutzerErgebnis == ergebnis)
          Console.WriteLine("Richtig");
        else
          Console.WriteLine("Falsch! Das richtige Ergebnis wäre: " + ergebnis);

        Console.WriteLine("Möchten Sie eine weitere Aufgabe lösen? (Ja/Nein)");
        antwort = Console.ReadLine().ToLower();

        while (antwort != "ja" && antwort != "nein")
        {
          Console.WriteLine("Bitte geben Sie 'Ja' oder 'Nein' ein.");
          antwort = Console.ReadLine().ToLower();
        }

        if (antwort == "nein")
          weitermachen = false;
      }
    }

    Console.WriteLine("Bis zum nächsten Mal");
    Console.ReadKey();
  }
}

So, wenn der Operator / sein sollte und das vorläufige Ergebnis eine Kommmastelle enthält, soll durch Modulo der nächstmögliche Divisor herausgefunden und durch den alten Divisor ersetzt werden.

Wie kriege ich es hin, das er den nächstmöglichen Divisor findet? Der kann ja kleiner und größer als der davor sein.

C Sharp, Programmiersprache, Modulo

Meistgelesene Fragen zum Thema Modulo