- 참조 유클리드호제법
function solution(n, m) {
// 최대공약수 구하기
// 1. n과 m을 비교하여 큰 값과 작은 값을 찾아내 big, small 변수에 할당한다.
// 2. big을 small로 나누고 나머지를 (remain변수에 할당한다.)
// 2-1. big에 small값을 재할당하고 small에 remain값을 재할당한다.
// 반복하면서 remain(나머지)이 되면 small값이 최대공약수가된다.
let answer = [];
let big = Math.max(n, m)
let small = Math.min(n,m)
// let temp
function gcd(big, small){
if(big % small === 0){
answer.push(small)
return
}else{
[big, small] = [small, big % small]
// temp = big % small
// big = small
// small = temp
gcd(big, small)
}
}
gcd(big, small)
answer.push(n*m / answer[0]) //최대 공배수 구하기
return answer;
}
function solution(n, m) {
let big = Math.max(n, m)
let small = Math.min(n,m)
function gcd(big, small){
if(big % small === 0){
answer.push(small)
return
}else{
[big, small] = [small, big % small]
gcd(big, small)
}
}
gcd(big, small)
answer.push(n*m / answer[0])
return answer;
}
function solution(n, m) {
function gcd(n, m){
if(n % m === 0){
answer.push(m)
return
}else{
[n, m] = [m, n % m]
gcd(n, m)
}
}
gcd(n, m)
answer.push(n*m / answer[0])
return answer;
}
두 수의 곱을 최대 공약수로 나눈 수가 최소 공배수이다.
유클리드 호제법이 이해가 안갔는데 덕분에 이해했습니다.
감사합니다 :)