알고리즘 문제풀이
# 최대 공약수 : 두 수의 나머지가 0이 될 때까지 재귀
def gcd(num1, num2):
if num1 % num2 == 0:
return num2
if num1 % num2 != 0:
return gcd(num2, num1 % num2)
# n개의 최대공약수 구하는 방법
# 두 수의 최대 공약수를 구한 뒤 계속 반복
def multiple_gcd(arr):
tmp = arr[0]
for idx in range(1, len(arr)):
tmp = gcd(tmp, arr[idx])
return tmp
# 최소 공배수 : 두 수의 곱을 최대공약수로 나눔
def lcm(max, min, gcd):
return (max * min) / gcd
# n개의 최소공배수 구하는 방법
# 두 수를 곱한 뒤 최소 공약수로 나누는 것을 계속 반복
def multiple_lcm(arr):
answer = arr[0]
for num in arr:
answer = answer * num // gcd(answer, num)
return answer
def solution(arr):
answer = multiple_lcm(arr)
return answer