## Saturday, 20 August 2016

### Chapter 7 Exercise 14, Introduction to Java Programming, Tenth Edition Y. Daniel LiangY.

7.14 (Computing gcd) Write a method that returns the gcd of an unspecified number of integers. The method header is specified as follows: public static int gcd(int... numbers) Write a test program that prompts the user to enter five numbers, invokes the method to find the gcd of these numbers, and displays the gcd.

import java.util.Scanner;

public class ProgrammingEx7_14 {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] numbers = new int[5];

System.out.print("Enter 5 number:");

for (int i = 0; i < numbers.length; i++) {
numbers[i] = input.nextInt();
}

System.out.println("The gcd is " + gcd(numbers));

}

//Using Euclidean algorithm recursively

public static int gcd(int... numbers) {
int gcd = min(numbers);

for (int i = 0; i < numbers.length; i++) {

if (numbers[i] % gcd == 0) {
numbers[i] = gcd;
} else {
numbers[i] = numbers[i] % gcd;
}

}

if (gcd == min(numbers)) {
return gcd;
}

return gcd(numbers);

}

public static int min(int... numbers) {

int min = numbers[0];
for (int i = 1; i < numbers.length; i++) {
if (min > numbers[i]) {
min = numbers[i];
}
}

return min;

}

}