프로그래머스 연습문제 - N개의 최소공배수 (level2)
from fractions import gcd
def nlcm(num):
answer = num[0]
for n in num:
answer = n * answer / gcd(n, answer)
return answer
gcd() : 두 수의 최대공약수를 구해주는 함수
최소공배수(lcm) = (x*y) / gcd(x,y)
이틀 연속 혼자 풀기 실패....
gcd()라는 함수가 있는지 처음 알았다. 메모메모..
from functools import reduce
from fractions import gcd
def nlcm(num):
return reduce(lambda a, b : a * b // gcd(a, b), num)
reduce 함수를 쓰면 한 줄로도 가능하다.
def gcd(a,b):
while b != 0:
tmp = a % b
a , b = b , tmp
return a