두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.
첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
(m*n) // 최대 공약수
이기 때문에, 최대 공약수를 구하는 코드만 생각하면 된다.유클리드 호제법
을 많이 사용한다.MOD 연산 : 두 값을 나눈 나머지를 구하는 연산
48 % 18 = 12
18 % 12 = 6
12 % 6 = 0
m, n = map(int, input().split())
# 최대공약수
def gcd(m, n):
if n == 0:
return m
return gcd(n,m%n)
print(gcd(m, n))
# 최소공배수
print(int(m*n/gcd(m,n)))
from math import gcd
m, n = map(int, input().split())
print(gcd(m,n))
print((m*n)//gcd(m,n))