본문 바로가기
TIL

[javascript] 최소공배수 최대공약수

by meno1011 2023. 2. 23.
728x90
두 수 A 와 B 가 있을 때 A * B = 최소공배수(LCM) * 최대공약수(GCD) 이다.

최대공약수 : GCD (Greatest Common Divisor) 

// 재귀적 사용법
function gcd(a, b){
	if(b === 0){
		return a;
	}eles{
		gcd(b, a % b);
	}
}
// 반복문으로 작성한 방법
function gcd(a, b){
    while( b > 0 ){
        let temp = a;
        a = b;
        b = temp % b;
    }
    return a
}

최소공배수 : LCM (Least Common Multiple)

// A * B = 최소공배수(LCM) * 최대공약수(GCD) 를 이용하자면 
// 최대공약수를 먼저 구한후 두 수의 곱을 최대공약수로 나누는 것이 좋다.
const A = 10;
const B = 5;
const LCM = A * B / gcd(A, B);