[Problem]
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환해주는 gcdlcm() 함수를 작성하시오.
- 예를 들어, 3과 12의 두 숫자의 최대공약수와 최소공배수를 비교한다고 해보자.
- 3의 약수는 1, 3이고, 12의 약수는 1, 2, 3, 4, 6, 12이다. 여기서, 최대공약수는 3이다.
- 3의 배수는 3, 6, 9, 12, 15, 18… 이다. 12의 배수는 12, 24, 36, 48… 이다. 여기서, 최소공배수는 12이다.
[Algorithms]
[Solution]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
function gcdlcm(a, b) { let gcd = 1, lcm = 1; const minNum = Math.min(a,b);
// 두 숫자 중에서 작은 값을 찾아, 1부터 그 작은값까지 비교하면서, 두 숫자에 대한 공약수를 찾는다. for (let i = 1; i <= minNum; i++) { if ((a%i == 0) && (b%i == 0)) { gcd = i } };
// 최소공배수는 두 수의 곱에 최대공약수로 나눈 값이다. lcm = a*b/gcd; return [gcd, lcm] }
console.log(gcdlcm(3,12)); // [ 3, 12 ]
|
近期评论