프로그래머스 _Javascript :최대공약수 구하기

Yoonezi·2023년 4월 5일
0

프로그래머스

목록 보기
2/6
post-thumbnail

최대공약수 구하기_유클리드 호제법

  1. 두수를 A % B 이렇게 나눠서 나머지(R1) 가 생겼다.
  2. 이번에는 B % R1 을 나눠버린다. 그럼 또 나머지(R2) 가 생겼다.
  3. 요번에는 R1 % R2 을 나눠버린다. 그럼 또 나머지(R3) 이 생겼다.
  4. 여번에는 R2 % R3 을 나눠버렸다. 근데 이번에는 나머지가 0 이다. (즉, 없다.)
    그럼 두수 A 와 B 의 최대공약수는 (나머지가 멸종되기전) 마지막 나머지였던 R3 이 된다.
function cal_gcd(a, b) {    
    return a % b === 0 ? b : cal_gcd(b, a%b);
}

function solution(numer1, denom1, numer2, denom2) {
    let numer = numer1*denom2 + numer2*denom1;
    let denom = denom1*denom2;
    let gcd = cal_gcd(numer, denom);
    let answer = [numer/gcd, denom/gcd]
    return answer;
}
profile
차곡차곡

0개의 댓글