2016-11-18 1 views
0

J'essaye de faire un programme qui utilise l'algorithme euclidien pour trouver le GCD de deux nombres. L'algorithme Euclidien dit que vous divisez le grand nombre par le petit nombre et prenez ce reste et divisez le petit nombre original par le reste, et vous continuez à faire cela jusqu'à ce que vous obteniez zéro. Mon programme imprime le reste, et le petit nombre, mais je veux trouver le GCD et imprimer chaque étape (chaque numéro qui traverse le programme).Programme GCD utilisant l'algorithme Euclidien

import java.util.Scanner; 
import java.util.Random; 

public class GCD{ 

    public static void main(String [] args){ 

     Scanner reader = new Scanner(System.in); 

     double n1; 
     double n2; 
     double firstOperation; 
     double smallNum; 
     double nextOperation; 

     System.out.println("Enter the first number (positive) "); 
     n1 = reader.nextDouble(); 

     System.out.println("Enter the second number (positive)"); 
     n2 = reader.nextDouble(); 

     if (n1 > n2){ 
      smallNum = n2; 
      firstOperation = n1 % n2; 
      System.out.println (firstOperation); 
     } 
     if (n1<n2){ 
      smallNum = n1; 
      firstOperation = n2 % n1; 
      System.out.println (firstOperation); 
     } 
     while (firstOperation >0) 
      nextOperation = smallNum % firstOperation ; 
      //System.out.println(nextOperation); 
     } 
    } 
} 
+0

JAVA EST PAS JAVASCRIPT !!!!!!!!! –

+0

D'abord utiliser Int pour tout vous variabe au lieu de double – Idali

+0

Deuxièmement, votre boucle while sera exécutée pour toujours, car 'firstOperation' ne change jamais – Wiebe

Répondre

0
public static int gcd(int a, int b) { 
    System.out.println(String.format("Calculating GCD of %d and %d", a, b)); 
    if(b == 0) { 
     return a; 
    } 
    return gcd(b, a % b); 
}