1. package infoHaF.exercise7;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Euklid {
  6.  
  7. public static void main(String[] args) {
  8.  
  9. int j = 1 ;
  10.  
  11. System.out.print("Defnieren Sie a: ");
  12. Scanner ascanner = new Scanner (System.in);
  13. int a = ascanner.nextInt();
  14.  
  15. System.out.print("Defnieren Sie b: ");
  16. Scanner bscanner = new Scanner (System.in);
  17. int b = bscanner.nextInt();
  18.  
  19. // jetzt sehr unständlich weil ich versucht habe den Zero Fehler weg zu bekommen
  20. // Check ob eine odere mehrere Var = 0 sind
  21.  
  22. while ( b != 0 && a != 0 && j <= 1) {
  23.  
  24. int gcd = ggT(Math.abs(a), Math.abs(b));
  25. System.out.println("ggT: " + gcd);
  26. j++;
  27. }
  28. while (a == 0 && b == 0 && j <= 1){
  29. System.out.println ("ggT nicht definiert!" );
  30. j++;
  31. }
  32. while ( b == 0 && j <= 1 ) {
  33. System.out.print("ggT: " + a);
  34. j++;
  35. }
  36. while ( a == 0 && j <= 1 ){
  37. System.out.println("ggT: " + b);
  38. j ++;
  39. }
  40. }
  41. public static int ggT(int a, int b) {
  42.  
  43. int quo;
  44. int rest = 0;
  45.  
  46. // Fall a > b
  47.  
  48. if (a > b) {
  49.  
  50. quo = a / b;
  51. rest = a % b;
  52.  
  53. while (rest > 0){
  54.  
  55. //while loop bis ggT gefunden wurde
  56.  
  57. a = b;
  58. b = rest;
  59. quo = a / b;
  60. rest = a % b;
  61. }
  62. return b;
  63. }
  64. // Fall a < b
  65. else {
  66.  
  67. int space = b;
  68. b = a; // Variablen-Tausch von a und b
  69. a = space;
  70.  
  71. quo = a / b;
  72. rest = a % b;
  73.  
  74. while (rest > 0){
  75.  
  76. a = b;
  77. b = rest;
  78. quo = a / b;
  79. rest = a % b;
  80. }
  81. }
  82. return b;
  83.  
  84. }
  85.  
  86. }
  87.