유클리드 알고리즘은 2개의 수의 최대공약수를 구하는 알고리즘의 일종이다.
호제법이란 두 수를 나누어가며 원하는 값을 얻는 알고리즘을 의미한다.
최대공약수 (GCD, Greatest Common Divider)
최대공약수는 두 자연수가 공통으로 갖는 약수중에서 가장 큰 값을 의미한다.
최대공약수를 구하는 코드는 다음과 같다 (자바스크립트)
function GCD(n, m){
if(n % m === 0){
return m;
}
return GCD(m, n % m);
}
// 반복문 버전
function GCD(n, m) {
while (m !== 0) {
let temp = m;
m = n % m;
n = temp;
}
return n;
}
최소공배수 (LCM, Least Common Multiple)
최소공배수는 두 자연수들의 배수중에서 공통된 가장 작은 수를 의미한다.
최소공배수를 구하는 식은 다음과 같다.
최소공배수 = n * m (두수의 곱) / GCD(n, m) (최대공약수)
'알고리즘' 카테고리의 다른 글
[알고리즘] 유클리드 거리 & 맨해튼 거리 (0) | 2024.06.03 |
---|---|
[알고리즘] 정렬 (개선 ver) (0) | 2024.05.21 |
[알고리즘] 간단한 식 계산하기 (+ 사칙연산) (0) | 2024.05.17 |
[알고리즘] 우선순위 큐 구현 (더 맵게) (0) | 2024.05.17 |
[알고리즘] 정렬 (0) | 2024.05.16 |