2021.09.04 def solution(n, m): def gcd(a, b): return gcd(b, a % b) if b > 0 else a return [gcd(n, m), n * m // gcd(n, m)] Project Euler의 5번 문제와 거의 동일한 문제여서 어떻게 코드를 줄일 수 있을지에 대해 생각했다. 우선 최대공약수를 구하는 함수는 유클리드 호제법을 재귀함수로 작성하였다. 호제법이란 두 수가 서로의 수를 나누어 결국 원하는 수를 얻는 알고리즘을 나타낸다. 유클리드 호제법이란 2개의 자연수 A, B에 대해서 A > B의 경우, A를 B로 나눈 나머지를 R이라 하면 A와 B의 최대 공약수는 B와 R의 최대공약수와 같다. 이 성질에 따라 B를 R로 나눈 나머지 R'을 구하고, 다시 R..