본문 바로가기

프로그램 공부/알고리즘

유클리드 호제법 - 최대공약수 구하는 알고리즘

https://ko.wikipedia.org/wiki/유클리드_호제법

 

유클리드 호제법 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 유클리드 호제법(- 互除法, Euclidean algorithm)은 2개의 자연수 또는 정식(整式)의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란 말은 두 수가 서로(互) 상대방 수를 나누어(除)서 결국 원하는 수를 얻는 알고리즘을 나타낸다. 2개의 자연수(또는 정식) a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다. 이 성질에 따라, b를

ko.wikipedia.org

 

ex) 1071, 1029의 최대공약수 구하기

 

1. (1071 % 1029)는 나누어 떨어지지 않기에(!=0) (1071 % 1029)의 나머지를 구한다. (==42)

-> 42, 1029

 

2. (1029 % 42)는 나누어 떨어지지 않기에(!=0) (1029 % 42)의 나머지를 구한다. (==21)

-> 42, 21

 

3. (42 % 21)은 나누어 떨어지므로(==0) 최대공약수는 21이다.

 

 

 

 

※최소공배수

: 두수의 곱 / 최대공약수