staticintgcd(int x, int y){
while(y != 0)
{
int temp = y;
System.out.println(y + " " + x);
y = x % y; //y에 나머지 저장
x = temp;
}
return x;
}
배열의 모든 원소의 최대공약수 구하기
import java.util.Scanner;
publicclassMain{
staticintgcd(int x, int y){
if(y == 0) return x;
elsereturn gcd(y, x % y);
}
staticintgcdArray(int arr[], int start, int no){
if (no == 1) return arr[start];
elseif (no == 2) return gcd(arr[start], arr[start + 1]);
elsereturn gcd(arr[start], gcdArray(arr, start + 1, no - 1));
}
publicstaticvoidmain(String[] args){
Scanner sc = new Scanner(System.in);
System.out.print("정수 몇 개의 최대 공약수를 구할까요?:");
int num;
do {
num = sc.nextInt();
} while (num <= 1);
int[] arr = newint[num];
for (int i = 0; i < num; i++) {
System.out.print("x[" + i + "]:");
arr[i] = sc.nextInt();
}
System.out.println("최대 공약수는 " + gcdArray(arr, 0, num) + "입니다.");
}
}
/*
정수 몇 개의 최대 공약수를 구할까요?:3
x[0]:25
x[1]:1525
x[2]:2000
최대 공약수는 25입니다.
*/