여러 수의 최대 공약수 푸는 문제인데 답은 알맞게 나오는데 시간이 너무 오래걸린다.
시간 단축 하는 법 좀 알려줘라
def getLCM(a, b):
c, d = max(a, b), min(a, b)
while c != d:
temp = c - d
c, d = max(temp, d), min(temp, d)
return a * b // c
def nlcm(num):
temp = 1
while len(num) != 0:
temp = getLCM(temp, num[-1])
num.pop()
return temp
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print(nlcm([2,6,8,14,5]));
빼기말고 %를써야 시간복잡도가이쁘게나오지
재귀해라 gcd(x,y) = y > 0 ? gcd(y, x%y) : x lcm(x,y) = x * y / gcd[x, y] reduce(lcm, nums)
유클리드 호제법 으로 푸는거 아니야?