프로그래머스 Lv.1 최대공약수 최대공배수 JS

FE 개발자 신상오·2022년 5월 18일
0

프로그래머스

목록 보기
1/20
post-thumbnail

프로그래머스 최대공약수 최대 공배수

// 유클리드 호제법 사용
// 두 수 중에서 큰 수를 작은 수로 나눈다.
// 만약 나누고 난 나머지가 0 이라면 작은 수가 최대공약수이다.
// 만약 나머지가 0 이 아니라면, 작은 수를 다시 나머지로 나눈다.
// 이를 반복해서 나머지가 0 이 될 때, 그 수가 바로 두 수의 최대공약수이다.


function solution(n, m) {
    let answer = [];
    
    let gcd = 0;
    let lcm = 0;
    
    let num = n > m ? n : m;
    
    for (let i = 1; i <= num; i++){
        if (n % i === 0 && m % i === 0){
            gcd = i;
        }
    }
    
    lcm = (n * m) / gcd;
    
    // 두 수의 곱 = 최대 공약수 * 최소 공배수 
    // 최소 공배수 = 두 수의 곱 / 최대 공약수
    
    answer = [gcd, lcm]
    return answer;
}
profile
주간 회고용 블로그입니다 (개발일지와 정보글은 티스토리에 작성합니다.)

0개의 댓글