mardi 28 avril 2015

Greates Commong Dividend - euklidischer Algorithmus, modulos not positive

Hallo wieder mal,

ich habe eine Methode geschrieben, die den größten gemeinsamen Teiler (= ggT = gcd = greates common dividend) mit Hilfe des euklidischen Algorithmus berechnet:

Java Code:

  1.  
  2. public BigInteger gcdEuclid(BigInteger n, BigInteger m){
  3. /* Beginne Initialisierung */
  4. BigInteger g = BigInteger.ZERO; // g = Lösung
  5. int zw = n.compareTo(m); // Vergleichsspeicher
  6. BigInteger a = BigInteger.ZERO; // erster Zwischenspeicher
  7. BigInteger b = BigInteger.ZERO; // zweiter Zwischenspeiche
  8. /* Beende Initialisierung */
  9.  
  10. while(zw != 0){
  11. a = m;
  12. b = n.mod(m);
  13. n = a;
  14. m = b;
  15. zw = n.compareTo(m);
  16. g = n;
  17. }
  18. return g;
  19. }


Nach dem dritten Durchlauf der Schleife bekomme ich die "java.lang.ArithmeticException: BigInteger: modulus not positive". Ich komme nicht drauf, wie ich das beheben kann.


Greates Commong Dividend - euklidischer Algorithmus, modulos not positive

0 commentaires:

Enregistrer un commentaire