본문 바로가기
일반 학습/코딩 테스트

[JavaScript] 재귀함수로 최대공약수 최소공배수 찾기

by StelthPark 2022. 3. 3.
function solution(a, b) {
  var gcd = calc_gcd(a, b);
  var lcm = (a * b) / gcd;
 
    return [gcd, lcm];
}
 
function calc_gcd(a, b) {
  if (b == 0) return a;
    return a > b ? calc_gcd(b, a % b) : calc_gcd(a, b % a);
}

a>b 가정에서

a를 b로 나눠진다면  b가 최대 공약수가 되고

최소공배수는 a 곱하기 b를 최대공약수로 나누면 된다.

 

calc_gcd에서 a와 b를 받는다.

a>b 가 사실이라면 재귀함수를 통해 b와 a와b를 나눈 나머지(r)를 넣는다.

다시 calc_gcd 함수로 들어와 b=>(a와b를 나눈게) 0이라면 b인 a를 리턴한다.

댓글