Wie macht man ein Kleinstes gemeinsames Vielfaches in C# mit einer for-Schleife?

2 Antworten

public int berechneGgt(int _zahl1, int _zahl2)
{
  int zahl1 = _zahl1;
  int zahl2 = _zahl2; //Diese Variable wird bei Wertzuweisungen zwischen den Zahlen benutzt
  int temp = 0; //Der Rückgabewert zweier gegebener Zahlen. 
  int ggt = 0;//Solange der Modulo der zwei zahlen nicht 0 ist, 
//werden Zuweisungen entsprechend demEuklidischen Algorithmus ausgeführt. 
  while (zahl1 % zahl2 != 0)
  { 
    temp = zahl1 % zahl2;
    zahl1 = zahl2;
    zahl2 = temp;
  }
  ggt = zahl2;
  return ggt;
}

public int berechneKgV(int zahl1, int zahl2)
{
  return (zahl1 * zahl2) / berechneGgt(zahl1,zahl2);
}

Quelle und Erklärung: https://pressbit.wordpress.com/2013/05/12/in-diesem-post-mochte-ich-zeigen-wie-der/

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf
Eucartoonfan 
Fragesteller
 14.05.2021, 18:33

Ich meine nur den KgV

0
TheQ86  14.05.2021, 18:37
@Eucartoonfan

Die kgV Funktion nutzt die ggT Funktion in diesem Beispiel. Also geht es nicht ohne.

0
MrAmazing2  14.05.2021, 18:40
@TheQ86

Ist zwar so am einfachsten, aber geht schon auch ohne.

0
public class KGV
{
   public static void main(String args[])
   {
      for(;;)
      {
         System.out.println("KGV von zwei ganzen Zahlen\n");

         System.out.print("a = ");
         int a = Stdin.intEingabe();

         System.out.print("b = ");
         int b = Stdin.intEingabe();

         if (a*b==0)
         {
            System.out.println("ende");
            break;
         }
         else
         {
            double max = a < b ? b : a ;
            double min = a < b ? a : b ;
            int i;

            for(i=1 ; (i*max)%min != 0 ; i++)
               ;

            System.out.println("kgv = " + i*max + "\n");
         }
      } // end for

   } // end main

}  // end class
https://www.straub.as/java/basic/LkgVggT.html