algorithm - 최소 공배수 와 최대 공약수

박선우·2022년 7월 15일
0

알고리즘

목록 보기
12/15
post-thumbnail

1.문제

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수,
solution을 완성해 보세요.배열의 맨 앞에 최대공약수,
그다음 최소공배수를 넣어 반환하면 됩니다.예를 들어 두 수 3, 12의 최대공약수는 3,
최소공배수는 12이므로 solution(3, 12)는[3, 12]를 반환해야 합니다.

제한사항
두 수는 1이상 1000000이하의 자연수입니다.

2.입출력 예제

nmreurn
312[3 , 12]
25[1 , 10]

3. 코드

function solution(n, m) {
    let GCD;
    // 최소 공배수 구하기
    // i가 두수를 각각,나눈값이 0이면 최소공배수
    for (let i = 0; i <= n; i++) {
        if (n % i === 0 && m % i === 0) {
            GCD = i;
        }
    }
    // 최대공배수!
    let LCM = (n * m) / GCD;
    return [GCD, LCM];
}
console.log(solution(3, 12));
console.log(solution(2, 5));

유클리드 제호법을 사용해서 최대 공배수를 구했다

두 수의 최대공약수를 G라고 했을 때,

A = G × a

B = G × b

최대공약수 = G

최소공배수 = G × a × b이다.

따라서 두 수의 곱은 최대공약수와 최소공배수의 곱과 같다!

profile
코린이 열심히 배우자!

0개의 댓글