최대공약수와 최소공배수

정승옥(seungok)·2020년 12월 3일
0

프로그래머스

목록 보기
15/40

문제설명

  • 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수 작성
  • 배열의 맨 앞에 최대공약수, 그 다음에 최소공배수 반환

제한사항

  • 두 수는 1이상 1000000이하의 자연수

풀이

function solution(n, m) {
    const great = (a,b) => {
        if(a%b===0 || b%a===0){
            if(a>=b)
                return b;
            else
                return a;
        }
        return great(b, a%b);
    }
    const least = (a,b)=>{
        return (a*b)/great(a,b);
    }
    return [great(n,m),least(n,m)];
    console.log(great(n,m));
}

체크포인트

  • 유클리드 호제법을 이용
  • 유클리드 호제법이란?
    1) a>b 또는 a<b일때 서로 나누어진다면 작은 수가 최대 공약수
    2) 나누어지지 않는다면 b와 a%b를 다시 나눈다
    3) 나누어진다면 a%b가 최대공약수, 나누어지지 않는다면 위의 과정 반복
profile
Front-End Developer 😁

0개의 댓글