주어진 arr = [2,6,8,14]의 최소 공배수를 찾아 반환하는 문제.
모든 수들의 최소 공배수라는 것은 모든 원소들끼리의 최소 공배수를 구하면 된다는 의미
2와 6의 최소공배수(= r)를 구하고 r과 8의 최소공배수를 구한다.
위의 과정을 반복, 배열 내의 모든 원소들과 연산하여 최소공배수를 찾는다.
from functools import reduce
def solution(arr):
return reduce(lambda a,b: lcm(a,b),arr)
# 최대 공약수 계산
def gcd(a,b):
while b > 0:
a,b = b, a%b
return a
# 최소 공배수 계산
def lcm(a,b):
return a*b/gcd(a,b)