12. 최대공약수와 최소공배수 ( Level 1 )

JavaScript logo

최대공약수와 최소공배수 ( Level 1 )

문제

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환해주는 gcdlcm 함수를 완성해 보세요.
배열의 맨 앞에 최대공약수, 그 다음 최소공배수를 넣어 반환하면 됩니다.
예를 들어 gcdlcm(3,12) 가 입력되면, [3, 12]를 반환해주면 됩니다.

나의 풀이

1
2
3
4
5
6
7
const gcdlcm = (a,b) => {
let gcd = 1;
for (let i = 1; i <= Math.min(a,b); i++) {
if ( !(a%i) && !(b%i) ) gcd = i
}
return [gcd, a*b/gcd]
}

다른 사람의 풀이

1
2
3
4
5
function greatestCommonDivisor(a, b) {return b ? greatestCommonDivisor(b, a % b) : Math.abs(a);}
function leastCommonMultipleOfTwo(a, b) {return (a * b) / greatestCommonDivisor(a, b);}
function gcdlcm(a, b) {
return [greatestCommonDivisor(a, b),leastCommonMultipleOfTwo(a, b)];
}

마무리

개인적으로 공부한 내용을 정리한 것이기 때문에 반말을 사용한 점 양해 부탁드립니다.
잘못된 부분이나 피드백이 있으시다면, 댓글에 남겨주시면 감사하겠습니다!

공유하기