https://programmers.co.kr/learn/courses/30/lessons/12940#
두 개의 수가 주어지면 최대공약수와 최소공배수를 구하는 문제이다.
문제에서 예를 들어준 것을 살펴보면,
3과 12의 최대공약수는 3, 최소공배수는 12이다.
3과 12의 약수 중에 가장 큰 수는 3, 3과 12의 배수들 중에 가장 작은 값은 12이다.
def solution(n, m):
answer = []
for i in range(min(n, m), 0, -1):
if n % i == 0 and m % i == 0:
answer.append(i)
break
for i in range(max(n, m), (n*m)+1):
if i % n == 0 and i % m == 0:
answer.append(i)
break
return answer
n과 m 중에 작은 수부터 1씩 줄어들면서 n과 m을 나눌 수 있는 수를 찾는 것이다.
n과 m 중에 큰 수부터 두 개를 곱한 수까지 1씩 늘어나면서 n과 m으로 나누었을 때 나머지가 0임을 모두 만족하는 값을 찾는 것이다.