첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.
출력
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
예제 입력 1복사
24 18
예제 출력 1복사
6 72
유클리드 호제법
number = list(map(int, input().split()))
a = number[0]
b = number[1]
gcd=0
lcm=0
def gcd_get(a,b):
while True : # 나머지가 0이 될 때 까지 반복해준다
r = b % a # 큰수를 작은수로 나눈다
if r == 0 : # 나머지가 0이 될때의 작은 수가 최대공약수이다
return a
# 나머지는 작은수로, 작은수는 큰수로 바꿔준다음
b=a
a=r
gcd = gcd_get(a,b)
lcm = gcd *(a//gcd) * (b//gcd)
print(gcd, lcm)