두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수,
solution을 완성해 보세요.배열의 맨 앞에 최대공약수,
그다음 최소공배수를 넣어 반환하면 됩니다.예를 들어 두 수 3, 12의 최대공약수는 3,
최소공배수는 12이므로 solution(3, 12)는[3, 12]를 반환해야 합니다.
제한사항
두 수는 1이상 1000000이하의 자연수입니다.
n | m | reurn |
---|---|---|
3 | 12 | [3 , 12] |
2 | 5 | [1 , 10] |
function solution(n, m) {
let GCD;
// 최소 공배수 구하기
// i가 두수를 각각,나눈값이 0이면 최소공배수
for (let i = 0; i <= n; i++) {
if (n % i === 0 && m % i === 0) {
GCD = i;
}
}
// 최대공배수!
let LCM = (n * m) / GCD;
return [GCD, LCM];
}
console.log(solution(3, 12));
console.log(solution(2, 5));
유클리드 제호법을 사용해서 최대 공배수를 구했다
두 수의 최대공약수를 G라고 했을 때,
A = G × a
B = G × b
최대공약수 = G
최소공배수 = G × a × b이다.
따라서 두 수의 곱은 최대공약수와 최소공배수의 곱과 같다!