최대공약수 구하기_유클리드 호제법
- 두수를 A % B 이렇게 나눠서 나머지(R1) 가 생겼다.
- 이번에는 B % R1 을 나눠버린다. 그럼 또 나머지(R2) 가 생겼다.
- 요번에는 R1 % R2 을 나눠버린다. 그럼 또 나머지(R3) 이 생겼다.
- 여번에는 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;
}