프로그래머스 Lv.1 최대공약수와 최소공배수
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | function solution(n, m) { let answer = []; let gcd_num = 0; let lcm_num = 0; if(n > m) { [n, m] = [m, n]; } for(let i = 1; i <= n; i++) { if(n % i === 0 && m % i === 0) { gcd_num = i; } } lcm_num = n * m / gcd_num; answer.push(gcd_num); answer.push(lcm_num); return answer; } | cs |
나는
n
이 작은수라고 생각하고 반복문을 만들 예정이기 때문에 만약n
이m
보다 큰 수라면 두 변수에 할당된 수를 swap한다.반복문을
i
가 1부터 n까지 반복한다.만약
n
을i
로 나눈 나머지가 0이고,m
을i
로 나눈 나머지가 0이라면 최대공약수를 담을 변수gcd_num
에i
를 할당해준다.최소공배수는 두 수의 곱에 최대공약수를 나눠주면 나온다.
따라서
n
과m
을 곱해서gcd_num
으로 나눠준 값을 최소공배수를 담을 변수lcm_num
에 할당해준다.
answer
에gcd_num
과lcm_num
을 차례대로push
해준다.