백준(Python) 풀이/수학

백준(Python) 2609번 최대공약수와 최소공배수 풀이

개발윗미 2021. 10. 6. 13:22

Python으로 구현한 2609번 최대공약수와 최소공배수 문제 풀이입니다.

 

https://www.acmicpc.net/problem/2609

 

2609번: 최대공약수와 최소공배수

첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.

www.acmicpc.net


a, b = map(int, input().split())
a_value = a
b_value = b

while b_value != 0 :
 a_value = a_value % b_value
 a_value, b_value = b_value, a_value

print(a_value)
print(a * b // a_value)

 

반복문을 통해 최대공약수를 먼저 구하도록 한다. 두 수 a와 b가 있을 때 a, b의 최대 공약수는

 

b와 a를 b로 나눈 나머지 값의 최대공약수와 같다.

 

최대공약수를 구하고 그 값을 통해 최소공배수를 구할 수 있다. 최소 공배수는 a로 나눠도 나누어 떨어지고

 

b로 나눠도 나누어 떨어지기 때문에 입력받은 원래의 값 a, b를 곱하고 이전에 구했던 최대공약수로 나누어 출력한다.