최소공배수 계산

Beginner

This tutorial is from open-source community. Access the source code

소개

수학에서 최소공배수 (LCM, Least Common Multiple) 는 두 개 이상의 숫자로 나누어 떨어지는 가장 작은 양의 정수입니다. 예를 들어, 4 와 6 의 LCM 은 12 입니다. 12 는 4 와 6 모두로 나누어 떨어지는 가장 작은 숫자이기 때문입니다.

최소공배수 (Least Common Multiple)

숫자 목록을 인수로 받아 최소공배수를 반환하는 함수 lcm(numbers)를 작성하십시오. 함수는 두 숫자 xy의 LCM 을 계산하기 위해 다음 공식을 사용해야 합니다: lcm(x, y) = x * y / gcd(x, y), 여기서 gcd(x, y)xy의 최대공약수 (greatest common divisor) 입니다.

이 문제를 해결하기 위해 functools.reduce() 함수를 사용하여 lcm() 공식을 목록의 모든 숫자에 적용할 수 있습니다. 또한 math.gcd() 함수를 사용하여 두 숫자의 최대공약수를 계산할 수 있습니다.

from functools import reduce
from math import gcd

def lcm(numbers):
  return reduce((lambda x, y: int(x * y / gcd(x, y))), numbers)
lcm([12, 7]) ## 84
lcm([1, 3, 4, 5]) ## 60

요약

이 챌린지에서는 functools.reduce()math.gcd() 함수를 사용하여 숫자 목록의 최소공배수를 계산하는 방법을 배웠습니다. lcm() 함수는 두 숫자의 LCM 을 계산하기 위해 lcm(x, y) = x * y / gcd(x, y) 공식을 사용합니다.