Python) 최대공약수와 최소공배수
난이도 : Level 1
유형 : 연습문제
카테고리 : 프로그래머스
날짜 : 2022-02-09
문제 풀이
최대공약수와 최소공배수를 구하는 문제였다.
min
과max
를 이용하여 입력 받는 수 n, m을 a와 b에 넣어주었다.1
2
3# n이 2, m이 5일 때
a, b = min(n, m), max(n, m)
# a = 2, b = 5while
문을 사용하여 그 안에 코드를 반복해주었다. r은 최소 값과 최대 값을 나눠주고 그 값을 b에 대입한다. 여기서 b가 0이 되면 while문을 빠져 나온다.1
2
3
4
5# n이 2, m이 5일 때
while b != 0 :
r = a % b # 2 -> 1 -> 0
a = b # 5 -> 2 -> 1
b = r # 2 -> 1 -> 0최대공약수와 최소공배수를 리턴한다.
1
2
3# n이 2, m이 5일 때
return [a, n*m//a]
# [1, 10]
전체 코드
1 | def solution(n, m): |
다른 사람의 풀이
a, b = b, t
이렇게 한번에 쓸 수도 있다.
1 | def solution(n, m): |
Python) 최대공약수와 최소공배수