최대공약수와 최소공배수 - Python

2023. 10. 14. 05:03공부/📝 프로그래머스

1. 풀이 코드

# 유클리드 호제법
# 최대공약수
def GCD(x, y):
    while y:
        x, y = y, x % y
    return x
    
    
# 최소공배수
def LCM(x, y):
    result = (x * y) // GCD(x, y)
    return result


def solution(n, m):
    return [GCD(n, m), LCM(n, m)]


# Test Cases
print(solution(3, 12))
print(solution(2, 5))

  예전에 사용한 유클리드 호제법 코드를 가져왔습니다.

 

2. 다른 사람 풀이 코드

def solution(n, m):
    def gcd(a, b): return b if not a % b else gcd(b, a % b)
    def lcm(a, b): return a*b//gcd(a, b)
    return [gcd(n, m), lcm(n, m)]

  저보다 더 간결하게 푼 사람을 발견했습니다. 멋있습니다.

 


 

'공부 > 📝 프로그래머스' 카테고리의 다른 글

3진법 뒤집기 - Python  (0) 2023.10.14
같은 숫자는 싫어 - Python  (0) 2023.10.14
직사각형 별찍기 - Python  (0) 2023.10.14
문자열 다루기 기본 - Python  (0) 2023.10.14
부족한 금액 계산하기 - Python  (0) 2023.10.14