상세 컨텐츠

본문 제목

[Python] 그래프 탐색 알고리즘: DFS/BFS_최대공약수(유클리드 호제법)

Python/이코테

by Gopythor 2022. 6. 11. 20:30

본문

728x90
반응형

예제

  • 두 개의 자연수에 대한 최대 공약수를 구하는 대표적인 알고리즘으로는 유클리드 호제법이 있습니다.

유클리드 호제법

  • 두 자연수  A,B에 대하여 (A, > B) A를 B로 나눈 나머지를 R이라고 합니다.
    • R = A % B
  • 이 때 A와 B의 최대 공약수는 B와 R의 최대 공약수와 같습니다.
    • GCD(A,B) = GCD(B,R)
  • 유클리드 호제법의 아이디어를 그대로 재귀 함수로 작성할 수 있습니다.
    • 예시: GCD(192, 162)
A B
1 192 162
2 162 30
3 30 12
4 12 6

 

def GCD(a, b):
    if a % b == 0:
        return b
    return GCD(b, a % b)


print(GCD(192, 162)) # 6

 

728x90
반응형

관련글 더보기

댓글 영역