두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.
n | m | return |
---|---|---|
3 | 12 | [3, 12] |
2 | 5 | [1, 10] |
입출력 예 #1
입출력 예 #2
def solution(n, m):
answer = []
answer.append(mini(n, m))
answer.append(maxi(n, m))
return answer
# 최대공약수 구하는 함수
def mini(x, y):
list_x = []
list_y = []
result = 0
for i in range(1, x+1):
if x % i == 0:
list_x.append(i)
for j in range(1, y+1):
if y % j == 0:
list_y.append(j)
if len(list_y) > len(list_x):
for i in list_x:
if i in list_y:
result = i
else:
for i in list_y:
if i in list_x:
result = i
return result
# 최소공배수 구하는 함수
def maxi(x, y):
list_x = []
list_y = []
for i in range(1, y+1):
list_x.append(i * x)
for j in range(1, x+1):
list_y.append(j * y)
for i in list_x:
if i in list_y:
return i
사실 최대공약수, 최소공배수를 구하는 파이썬 내장 함수가 있는 걸 알지만 한 번 다시 기억을 복기 해볼겸 풀어봤다.
그리고 최대공약수, 최소공배수 구해주는 함수 키워드를 까먹은 이유도 있다..
math.lcm(), math.gcd() 까먹지 않기!