BOJ

[BOJ] 2609 최대공약수와 최소공배수

daniel7481 2021. 12. 9. 17:37
반응형

문제

두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.

출력

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

풀이

수학 기본 문제 중 하나인 최대 공약수 최소 공배수를 구하는 문제이다. python에는 친절하게 math 모듈 안에 gcd매서드를 이용하면 간단하게 구현할 수 있다. gcd매서드는 gcd(x, y)에서 x와 y의 최대 공약수를 구하는 매서드이고, 최소 공배수를 구하려면 a랑 b를 곱하고 최대 공약수로 나눠주면 된다.

from math import gcd
a, b = map(int, input().split())
print(gcd(a, b))
print(a*b//gcd(a,b))
반응형