Python으로 구현한 2609번 최대공약수와 최소공배수 문제 풀이입니다.
https://www.acmicpc.net/problem/2609
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를 곱하고 이전에 구했던 최대공약수로 나누어 출력한다.
'백준(Python) 풀이 > 수학' 카테고리의 다른 글
백준(Python) 2748번 피보나치 수 2 풀이 (0) | 2021.10.06 |
---|---|
백준(Python) 2581번 소수 풀이 (0) | 2021.10.06 |
백준(Python) 1085번 직사각형에서 탈출 풀이 (0) | 2021.10.06 |
백준(Python) 1929번 소수 구하기 풀이 (0) | 2021.10.06 |
백준(Python) 10250번 ACM 호텔 풀이 (0) | 2021.10.06 |