ABOUT

성능과 운영 안정성을 함께 끌어올리는 개발자입니다.

92% Positional Error Reduction
79% p95 Latency Improvement
90%+ Long Tasks Reduction

2022.02 · 한국장학재단

우수 멘티

한국장학재단 사회 리더 대학생 멘토링 IT

2022.10 · 동작구청

우수 인재상

동작구청 우수 SW 인재

2025.05 · (주) 그랩

프로그래밍 우수상

(주) 그랩 우수 프로그램 개발

2025.05 · AWSKRUG

AWS한국사용자모임 발표

AI agent 스크립트 튜닝 관련 발표

ComputerScience

Development

Engineering

Trouble Shooting

GUESTBOOK

첫 마음부터
함께 나누는 온기

방명록 작성하러 가기

SUBSCRIBE

최신소식을
편하게 만나보세요.

최대공약수 ( gcd ) & 최소공배수 ( lcm )

 

 
 

Algorithm

 

 

What ?

최대공약수 ( gcd  ) & 최소공배수 ( lcm )

최대 공약수 ( gcd )두 자연수의 공통된 약수인 공약수 중 가장 큰 공약수

   최소 공배수
( lcm ) : 두 자연수의 공통된 배수인 공배수 중 가장 작은 공배수

 


 

How ?

유클리드 공식 ( Euclidean algorithm ) 으로 도출한다.

💡  유클리드 공식 (Euclidean algorithm)
두 양의 정수 a와 b가 존재하고 (a > b)
a = bq + r (0 ≤ r < b)이라 하면, a, b의 최대공약수는 b, r의 최대공약수와 같다.
r = 0이라면, a, b 의 최대공약수는 b가 된다.


gcd⁡(a, b) = gcd⁡(b, r) 

 



Example

2418 의 최대공약수 구하기

function main() {
	let a = 24;
    let b = 18;
	const result = gcd(a,b);
    
    console.log("최대공약수 : " + result ); // 최대 공약수를 호출
	console.log("최소공배수 : " + (a*b)/res); // 최소공배수
}

// 최대공약수 함수
function gcd(a, b) {
	let num = 0;
    
	if(a < b) {
    	num = b % a
    }else{
    	num = a % b
    }
 
	if(num === 0) return a < b ? a : b
    
	return gcd(a < b ? a : b , num);
}

 

 

Detail

 

  1. 주어진 값에서 큰 값 % 작은 값으로 나머지를 구한다.

  2. 나머지가 0이 아니면, 작은 값 % 나머지 값을 재귀함수로 계속 진행

  3. 나머지가 0이 되면, 그때의 작은 값이 ' 최대공약수 '이다.

  4.  주어진 값들끼리 곱한 값을 '최대공약수'로 나눈 값이 '최소 공배수 '이다.

 

 

728x90