본문 바로가기
성장하기/Python

gcd와 lcm

by 솔로 슈퍼스타 2023. 6. 16.
728x90

파이썬에서 최대공약수(GCD, Greatest Common Divisor)와 최소공배수(LCM, Least Common Multiple)를 구하기 위해 math 모듈에서 제공하는 gcd()와 lcm() 함수를 사용할 수 있습니다.

gcd()

gcd() 함수는 두 개 이상의 숫자의 최대공약수를 계산하는 데 사용됩니다. 여러 개의 인자를 받을 수 있으며, 인자들 간의 최대공약수를 반환합니다.

 

import math

result = math.gcd(a, b, ...)

a, b, ...: 최대공약수를 계산할 숫자들. 최소한 두 개 이상의 숫자를 전달해야 합니다.

lcm()

lcm() 함수는 두 개 이상의 숫자의 최소공배수를 계산하는 데 사용됩니다. 여러 개의 인자를 받을 수 있으며, 인자들 간의 최소공배수를 반환합니다.

 

import math

result = math.lcm(a, b, ...)

a, b, ...: 최소공배수를 계산할 숫자들. 최소한 두 개 이상의 숫자를 전달해야 합니다.
math 모듈의 gcd()와 lcm() 함수는 파이썬 3.9부터 사용 가능한 함수입니다. 이전 버전의 파이썬에서는 fractions 모듈의 gcd() 함수를 사용할 수도 있습니다.

 

import math

num1 = 12
num2 = 18

gcd_result = math.gcd(num1, num2)
lcm_result = math.lcm(num1, num2)

print(gcd_result)  # 출력: 6
print(lcm_result)  # 출력: 36

위의 예시 코드에서는 math.gcd() 함수를 사용하여 12와 18의 최대공약수를 계산하고, math.lcm() 함수를 사용하여 최소공배수를 계산합니다. 계산된 결과는 각각 6과 36입니다.

 

그 밖에 gcd아 lcm을 구하는 방법들은 다음과 같습니다.

 

def gcdlcm(a, b):
    c,d = max(a, b), min(a, b)
    t = 1
    while t>0:
        t = c%d
        c, d = d, t
    answer = [ c, int (a*b/c)]
    return answer
    gcd = lambda a,b : b if not a%b else gcd(b, a%b)
    lcm = lambda a,b : a*b//gcd(a,b)

 

 

[참조]

https://school.programmers.co.kr/learn/courses/30/lessons/12940/solution_groups?language=python3 

 

'성장하기 > Python' 카테고리의 다른 글

문자열에서 숫자를 추출하는 방법  (0) 2023.06.17
fromkeys  (0) 2023.06.16
maketrans 와 translate  (0) 2023.06.16
dataclass  (0) 2023.06.16
yield  (0) 2023.06.16