유클리드 호제법은 num1%num2=r 일 때, GCD(num1,num2)=GCD(num2,r)과 같다는 것이다. 이 때, r=0이라면, num2가 gcd(num1,num2)가 될 것이다.
재귀를 이용한 방법
const gcd=(num1, num2)=> num2>0? gcd(num2,num1%num2):num1
while을 이용한 방법
const gcd=(num1, num2)=>{
while(num2>0){
let r=num1%num2;
num1=num2;
num2=r;
}
return num1;
let getGCD = (num1, num2) => {
let gcd = 1;
for(let i=2; i<=Math.min(num1, num2); i++){
if(num1 % i === 0 && num2 % i === 0){
gcd = i;
}
}
return gcd;
}
const getLCM = (num1, num2) =>{
let lcm = 1;
while(true){
if((lcm % num1 == 0) && (lcm % num2 == 0)){
break;
}
lcm++;
}
return lcm
}
const gcd= (a,b) => a%b===0 ? b: gcd(b,a%b);
const lcm= (a,b) => a*b / gcd(a,b);