# kgV berechnen



## Bernd82 (24. Nov 2009)

Hallo

ich versuche mich gerade darin das kgV zu berechnen. Nach kurzem google Studium macht man das wohl am besten in dem man das ggT mit einbezieht. Ein programm für den ggT habe ich schon geschrieben (rekursiv).

```
static int kgV(int a, int b)
    { 
	return a * (b / ggT(a,b));
```

Nun frage ich mich wie man das kgV den nun am besten berechnet. wäre dieser ansatz denn korrekt? habs noch net versucht zu programmieren da ich erst wissen will ob ich auf dem richtigen Weg bin  




```
import java.util.Scanner;

public class ggTrek{
   public static void main(String[] args){
      Scanner scanner = new Scanner(System.in);
      System.out.print("Geben sie die erste Zahl ein: ");
      long a = scanner.nextInt();
      if (a==0){
          System.out.println("Bitte geben sie eine Zahl grösser 0 ein!");
          System.exit(0);
        }
      System.out.print("Geben sie nun die zweite Zahl ein: ");
      long b = scanner.nextInt();
      if (b==0){
          System.out.println("Fehler! Bitte geben sie eine Zahl grösser 0 ein!");
          System.exit(0);
        }
      System.out.println("Der ggT von den beiden Zahlen ist:" + ggT(a,b));
   }
   static long ggT(long a, long b){
     if(a==b|b==0) return a;
     else return ggT(b,a%b);
    }
}
```


----------



## Bernd82 (24. Nov 2009)

Ich habs nun 
Eine Frage habe ich da noch. Wie bekomme ich das hin das wenn ich zb nen Buchstaben eingebe das er das Programm dann auch beendet also so wie ich bei den if Abfragen gemacht habe sollte a oder b=0 sein. Auch über ein if?
Problem wie schreibe ich es dann kann ja nicht für jedes Zeichen ne if Abfrage machen



```
import java.util.Scanner;
 
public class ggTrek{
   public static void main(String[] args){
      Scanner scanner = new Scanner(System.in);
      System.out.print("Geben sie die erste Zahl ein: ");
      long a = scanner.nextInt();
      if (a==0){
          System.out.println("Fehler! Bitte geben sie eine Zahl grösser 0 ein!");
          System.exit(0);
        }
      System.out.print("Geben sie nun die zweite Zahl ein: ");
      long b = scanner.nextInt();
      if (b==0){
          System.out.println("Fehler! Bitte geben sie eine Zahl grösser 0 ein!");
          System.exit(0);
        }
      System.out.println("Der ggT von den beiden Zahlen ist:" + a * (b / ggT(a,b)));
   }
   static long ggT(long a, long b){
     if(a==b|b==0) return a;
     else return ggT(b,a%b);
    }
static long kgV(long a, long b)
    { 
    return a * (b / ggT(a,b));
}
}
```


----------



## Bernd82 (24. Nov 2009)

* nochmal aktualisiert        Frage steht aber noch :>


```
import java.util.Scanner;
 
public class kgV{
   public static void main(String[] args){
      Scanner scanner = new Scanner(System.in);
      System.out.print("Geben sie die erste Zahl ein: ");
      long a = scanner.nextInt();
      if (a==0){
          System.out.println("Fehler! Bitte geben sie eine Zahl grösser 0 ein!");
          System.exit(0);
        }
      System.out.print("Geben sie nun die zweite Zahl ein: ");
      long b = scanner.nextInt();
      if (b==0){
          System.out.println("Fehler! Bitte geben sie eine Zahl grösser 0 ein!");
          System.exit(0);
        }
      System.out.println("Das kgV von den beiden Zahlen ist:" + a * (b / ggT(a,b)));
   }
   static long ggT(long a, long b){
     if(a==b|b==0) return a;
     else return ggT(b,a%b);
    }
static long kgV(long a, long b)
    { 
    return a * (b / ggT(a,b));
}
}
```


----------



## SlaterB (24. Nov 2009)

> System.out.println("Das kgV von den beiden Zahlen ist:" + a * (b / ggT(a,b)));
ist in jedem Fall schlecht, wieso den Code doppelt schreiben?
besser:
 System.out.println("Das kgV von den beiden Zahlen ist:" + kgV(a,b));

das Einlesen einer Zahl kannst du in eine Methode stecken:
readNextIntOrExit(Scanner),
darin dann die ganzen if-Abfragen, alle nur einmal programmieren, da du die Methode mehrfach aufrufst


----------



## dbohnen (25. Nov 2009)

problem gelöst...


----------



## SlaterB (25. Nov 2009)

falls dbohnen == angemeldeter Bernd82 sein soll, dann das bitte etwas deutlicher erwähnen,
ansonsten: ?


----------



## Bernd82 (26. Nov 2009)

Nein das bin ich nicht, aber scheinbar kopiert er gern mal andere Lösungen....Sein anderer Thread zu den Fibonacci Zahlen sagt mir das wir wohl die gleiche Lehrveranstaltung besuchen....warum auch selber was machen wenn man es auch schnell kopieren kann


----------



## SlaterB (26. Nov 2009)

naja, wer sich im Forum helfen läßt, brauch nicht nach anderen zu rufen 
wobei so eine kleine Korrektur schon viel besser ist als andere Fragen a la 'ich versteh nix, wer kann helfen = komplett machen?'


----------



## Bernd82 (26. Nov 2009)

Naja das Programm lief ja so schon, nur ne Kleinigkeit hat noch gefehlt ---> da brauchte ich dann schon Hilfe


----------



## dbohnen (28. Nov 2009)

Bernd82 hat gesagt.:


> Nein das bin ich nicht, aber scheinbar kopiert er gern mal andere Lösungen....Sein anderer Thread zu den Fibonacci Zahlen sagt mir das wir wohl die gleiche Lehrveranstaltung besuchen....warum auch selber was machen wenn man es auch schnell kopieren kann



@bernd82 ziemlich "harte" behauptung/unterstellung...
..wärst du in der lage, deine behauptung zu beweisen?...
...würde mich mal interessieren...

mfg dbohnen


----------



## Bernd82 (28. Nov 2009)

man kann sich ja 1 und 1 zusammen zählen....

#5: Geändert von dbohnen (25.11.2009 um 23:26 Uhr)
erstellt: 25.11.2009, 23:23 

wie gesagt ich behaupte das jetzt mal, aber dürfte auch mein Fehler sein, damit muss man dann rechnen wenn man ins Forum postet

wenn du das schon hart findest, dann können wir uns auch gerne persönlich mal treffen, mal sehen ob es noch was härters für dich gibt 

so HF


----------



## eRaaaa (28. Nov 2009)

nette klassen-kameradschaft habt ihr ja


----------



## javimka (28. Nov 2009)

Ihr könntet euch auch treffen und eure Aufgaben zusammenlösen, wenn ihr es nicht alleine schafft


----------



## Bernd82 (29. Nov 2009)

was heißt hier denn "nette klassen-kameradschaft" ?  

da es mehrere Kurse dieser Lehrveranstaltung gibt, 10 um genau zu sein mit ca 15 Leuten pro Kurs, ist das mit klassen-kameradschaft leicht übertrieben 

wie gesagt ich unterstelle es ihm jetzt einfach mal und ja ich weiss einen wirklichen Beweis dafür kann ich nicht vorzeigen bzw muss ich damit rechnen wenn man was ins Netz stellt, aber es wird doch wohl gestattet sein sich mal kurz drüber aufregen zu dürfen 

letztendlich ist ein weiterer Sinn solcher Foren, auch Leuten weiter zu helfen die ähnliche/gleiche Probleme in Zukunft auch haben zu helfen, in dem man google oder Forum Suche benutzt...

Nur der Stein meines Anstoßes war der das er in einem vorherigen Thread ( http://www.java-forum.org/hausaufgaben/92072-fibonacci-folge-rekursive-berechnung.html )
seinen Code nach dem ihm geholfen wurde wieder entfernt hat...


----------

