Question: 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.

How to find GCD:

1. Divide the larger number by the smaller number. If number is zero then divisor is GCD

2. Let the divisor of step 1 be the dividend now and make the remainder as the new divisor. Continue the process

till you get a zero as remainder

3. Last divisor will be GCD

package Ch7;
/*
Q: 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.
How to find GCD:
1. Divide the larger number by the smaller number. If number is zero then divisor is GCD
2. Let the divisor of step 1 be the dividend now and make the remainder as the new divisor. Continue the process
till you get a zero as remainder
3. Last divisor will be GCD
*/
import java.util.Arrays;
public class Ex14 {
public static int gcd (int... numbers){
//sort the array
Arrays.sort(numbers);
//check if length of array
if (numbers.length<2){
return -1;
}
//initialize the gcd with the smallest number
int gcd=numbers[0];
for(int i=0; i<numbers.length; i++){
gcd=gcdTwo(gcd, numbers[i]);
}
return gcd;
}
public static int gcdTwo (int divisor, int dividend){
while (divisor!=0){
int temp= divisor;
divisor= dividend%divisor;
dividend=temp;
}
return dividend;
}
public static void main (String [] args){
System.out.println(gcd(10,5,15,20,25));
}
}

### Like this:

Like Loading...

*Related*