유클리드 호제법[최대공약수]
유클리드 호제법(-互除法, Euclidean algorithm) 또는 유클리드 알고리즘은 2개의 자연수 또는 정식(整式)의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란 말은 두 수가 서로(互) 상대방 수를 나누어(除)서 결국 원하는 수를 얻는 알고리즘을 나타낸다. 2개의 자연수(또는 정식) a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다. 이 성질에 따라, b를 r로 나눈 나머지 r'를 구하고, 다시 r을 r'로 나눈 나머지를 구하는 과정을 반복하여 나머지가 0이 되었을 때 나누는 수가 a와 b의 최대공약수이다. 이는 명시적으로 기술된 가장 오래된 알고리즘으로서도 알려져 있으며, 기원전 300년경에 쓰인 《원론》 제7권, 명제 1부터 3까지에 해당한다. - wiki
해설
말은 어려워 보이지만 실로 간단하다
두 수 중 큰 수와 작은 수로 구분하고
큰 수에서 작은 수를 나누었을 때 나머지를 기억한다.
큰 수는 작은 수로 작은 수는 나머지로 재 할당한다.
만약 큰 수 나누기 작은 수가 0이 되면 작은 수가 최대 공약수가 된다.
def uclid(a, b):
big = max(a, b)
small = min(a, b)
while (big % small) != 0:
namuge = big % small
big = small
small = namuge
return small
이러면 최대공약수가 나온다.!!
Author And Source
이 문제에 관하여(유클리드 호제법[최대공약수]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@16616516/유클리드-호제법최대공약수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)