포시코딩

최대공약수와 최소공배수의 관계 (유클리드 호제법) 본문

자료구조알고리즘/이론

최대공약수와 최소공배수의 관계 (유클리드 호제법)

포시 2022. 12. 18. 23:04
728x90

유클리느 호제법이란?

https://velog.io/@yerin4847/W1-유클리드-호제법

 

유클리드 호제법(Euclidean-algorithm)

유클리드 호제법에 대해 알아보자.

velog.io

개념은 정리가 너무 잘 되어있어 링크째로 남긴다.

 

최대공약수(GCD, Greatest Common Divisor)

코드

위 포스팅 예제는 C언어로 작성되었기 때문에 파이썬으로 나타내봤다.

 

반복문

# 반복분
def gcd(a, b):
  while b:
    temp = a % b
    a = b
    b = temp
  return a

재귀함수

# 재귀함수
def gcd(a, b):
  return (gcd(b, a % b) if b else a)

 

최소공배수(LCM, Least Common Multiple)

두 수 a, b에 대해 위 방법을 통해 최대공약수를 구한 뒤

두 수의 곱을 나누면 된다.

코드

def lcm(a, b):
  return a * b / gcd(a, b)
728x90