계발자 블로그

유클리드 호제법 최대공약수 최소공배수 구하기 본문

Algorithm

유클리드 호제법 최대공약수 최소공배수 구하기

더구더구 2022. 6. 23. 01:05

유클리드 호제법이란?

 

유클리드 互除法 / Euclidean algorithm

互(서로 호), 除(나눌 제, 뺄 제) 서로 나눈다는 의미입니다.

두 양의 정수, 혹은 두 다항식의 최대공약수를 구하는 알고리즘입니다. 인류 최초의 알고리즘이라고 하네요.

 

 

출처 나무위키

 

출처 나무위키

gcd는 최대공약수를 뜻합니다.

Greatest Common Divisor의 줄임말입니다.

 

 

자바 코드로 나타내면

// 반복문 방식
int gcd(int a, int b) {
	
	while(b != 0) {
		int r = a % b;
		a = b;
		b = r;
	}
	return a;
}
 
// 재귀 방식
int gcd(int a, int b) {
	if(a%b == 0) return b;
	return gcd(b, a % b);
}

이렇게 됩니다.

 

최소공배수는

a * b / 최대공약수입니다.

 

 

'Algorithm' 카테고리의 다른 글

[알고리즘] Kotlin 백준 1157번 단어 공부  (0) 2023.08.14
[알고리즘] 삽입정렬  (0) 2022.05.18
[알고리즘] 버블정렬  (0) 2022.05.17
[알고리즘] 선택정렬  (0) 2022.05.17
[알고리즘] 에라토스테네스의 체  (0) 2022.05.16