Java/문법

[Java/문법] 최대공약수(GCD), 최소공배수(LCM), 여러 수의 최소공배수 구하기

Se On 2025. 1. 3. 16:22

✏️ 최대공약수(GCD)

  • 유클리드 호제법을 사용해 구할 수 있습니다.
  • b가 0이 될 때까지 a를 b로 나눈 나머지를 계산합니다.
public static int gcd(int a, int b) {
	if (b == 0) return a;
    return gcd(b, a%b);
}

 


 

✏️ 최소공배수(LCM)

  • 최대공약수를 이용해 구할 수 있습니다.
  • 두 수의 곱 / 최대공약수로 나누면 최소공배수를 구할 수 있습니다.
public static int lcm(int a, int b) {
	return a*b / gcd(a, b);
}

 


✏️ 여러 수의 최소공배수

  • 배열의 첫 번째 요소부터 시작해서 순차적으로 각 요소와의 최소공배수를 구할 수 있습니다.
public static int lcmOfArray(int[] arr) {
	int result = arr[0];
    for (int i = 1; i < arr.length; i++) {
    	result = lcm(result, arr[i]);
    }
    return result;
}

 

반응형