이고, 를 로 나눈 나머지가 이라고 하자. ()
와 의 최대공약수를 라고 하면, 이다.

def solution(a, b):
c, d = max(a, b), min(a, b)
t = 1
while t > 0:
t = c % d
c, d = d, t
answer = [c, int(a*b/c)]
return answer
def solution(n, m):
gcd = lambda a,b : b if not a%b else gcd(b, a%b)
lcm = lambda a,b : a*b//gcd(a,b)
return [gcd(n, m), lcm(n, m)]
lambda 와 재귀함수를 이용하면 훨씬 간결하게 풀 수 있다는 사실을 알게 되었다.