CS - 유클리드 호제법을 이용한 최대공약수 구하기
2022-03-17
유클리드 호제법?
유클리드 호제법은 위키피디아에 따르면
유클리드 호제법(-互除法, Euclidean algorithm) 또는 유클리드 알고리즘은 2개의 자연수 (opens new window) 또는 정식(整式)의 최대공약수 (opens new window)를 구하는 알고리즘 (opens new window)의 하나
로, 유클리드 호제법에 따르면, >일 때 의 값을 mod 의 결과값으로 나눠주는 것을 반복하다 나눈 나머지가 0이 됐을 때의 를가 바로 최대공약수이다.
구현방법
원리는 간단하다. 에 mod 를, 에 를, 에 을 대입한다. 이렇게 되면 다음 루프에서도 나머지값이 자리에, 기존 값이 자리로 들어가 의 값을 mod 의 결과값으로 나눌 수 있게 된다.
프로그래밍으로 구현 - 순서도와 테스트 케이스 표
프로그래밍으로 구현 - 실제 코드
def gcdEuclid(a, b):
r = a % b
while r != 0:
r = a % b
a = b
b = r
return a
print(gcdEuclid(12,18))
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9