최소공배수(LCM) / 최대공약수(GCD)
유클리드 호제법을 이용한 풀이
a,b를 서로 나눌 때, 나누어진다면 b가 최대공약수이다. (a>b)
만약 a,b가 나누어지지 않으면 b와 a를 b로 나눈 나머지를 다시 나눈다.
서로가 나누어지면 a%b가 최대공약수이다. 나누어지지 않는다면 위처럼 b와 a를 b를 나눈 나머지를 다시 나눈다.
function solution(n, m) {
const gcd = (a, b) => a % b === 0 ? b : gcd(b, a % b);
const lcm = (a, b) => a * b / gcd(a, b);
return `최대공약수 ${gcd(n, m)}, 최소공배수 ${lcm(n, m)}`
}
console.log(solution(3, 15));
Last updated