[프로그래머스 | Javascript] 최대공약수와 최소공배수

박기영·2022년 9월 12일
0

프로그래머스

목록 보기
28/126

solution

function solution(n, m) {
    let ans = [];
    
    let a = n;
    let b = m;
    
    // 유클리드 호제법. 최대공약수 구하기
    while(a % b !== 0){
        let r = a % b;
        
        if(r !== 0){
            a = b;
            b = r;
        }
    }
    
    ans.push(b);
    
    // 최소공배수 = 두 자연수의 곱 / 최대공약수
    let min = (n * m) / b;
    
    ans.push(min);
    
    return ans;
}

유클리드 호제법을 사용하여 최대공약수를 구한다.
최소공배수는 두 자연수의 곱을 최대공약수로 나눠서 얻을 수 있다.
유클리드 호제법을 사용한 백준 문제를 몇 가지 풀었었는데, 여기에 가면 필자의 풀이가 있다.

profile
나를 믿는 사람들을, 실망시키지 않도록

0개의 댓글