RSS를 기반으로 매일 찾아오는 새로운 이야기.
최신 콘텐츠를 놓치지 말고 구독으로 편하게 만나보세요.
SUBSCRIBE
최신소식을 편하게 만나보세요.
카테고리 없음
최대공약수 ( gcd ) & 최소공배수 ( lcm )
2024. 8. 2. 17:05
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
24 와 18의 최대공약수 구하기
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);
}