Programmers

[프로그래머스]유클리드 알고리즘으로 최대공약수 구하기. feat 재귀

딸기뚜왈기 2024. 1. 22. 19:34
  • gcd 함수는 유클리드 알고리즘을 사용하여 최대공약수를 계산합니다. 람다 함수를 이용하여 정의되어 있으며, a와 b의 최대공약수를 재귀적으로 계산합니다.
  • lcm 함수는 최소공배수를 계산하는 함수로, 입력된 두 수 a와 b의 최소공배수를 계산합니다. 여기서 lcm(a, b) * gcd(a, b) = a * b라는 관계를 이용합니다.
def solution(n, m):
    # answer = [i for i in range(1,n+1) if n%i == 0 and m%i == 0]
    # return [max(answer), (n*m)//max(answer)]
    gcd = lambda n, m : m if not n%m  else gcd(m, n%m)
    lcm = lambda n, m : n*m//gcd(n,m)
    
    return [gcd(n,m), lcm(n,m)]
def solution(n,m):

gcd = lambda n,m : m if not n%m else gcd(m, n%m)
lcm = lambda n,m : n * m // gcd(n,m)

return [gcd(n,m), lcm(n,m)