n | m | return |
---|---|---|
3 | 12 | [3, 12] |
2 | 5 | [1, 10] |
위의 설명과 같습니다.
자연수 2와 5의 최대공약수는 1, 최소공배수는 10이므로 [1, 10]을 리턴해야 합니다.
function solution(n, m) {
var answer = [];
let a = 0;
let b = 0;
let r = 0;
if(n > m) {
a = n
b = m
} else {
a = m
b = n
}
// (a>b)
// a를 b로 나눈 나머지 = r
// a과 b의 최대공약수 = r과 b의 최대공약수 , 즉 나머지가 0이 나올때까지 나눈 수가 최대공약수이다.
while(b !== 0) {
r = a%b
a = b
b = r
}
answer.push(a)
// n*m = nm
// nm / n과 m의 최대공약수 = n과 m의 최소공배수
const 최소공배수 = (n * m) / a
answer.push(최소공배수)
return answer;
}