공부/알고리즘

[99클럽 코테 스터디 2일차 TIL] JAVA 배열의 최대공약수(gcd), 최소공배수(lcm) 구하기

확두뇌 2024. 7. 23. 16:14
//최대공약수
public int gcd(int a, int b){
    if(a % b == 0){
        return b;
    }
    return gcd(b, a % b);
}

//최소공배수
public static int lcm(int a, int b) {
    return a * (b / gcd(a, b));
}

// 배열의 최대공약수 구하기
public static int findArrayGCD(int[] arr) {
    int result = arr[0];
    for (int i = 1; i < arr.length; i++) {
        result = gcd(result, arr[i]);
    }
    return result;
}

// 배열의 최소공배수 구하기
public static int findArrayLCM(int[] arr) {
    int result = arr[0];
    for (int i = 1; i < arr.length; i++) {
        result = lcm(result, arr[i]);
    }
    return result;
}