[Baekjoon] 2609. 최대공약수와 최소공배수

less than 1 minute read

문제 설명

문제

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

입력

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

출력

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

예제 입력 1

24 18

예제 출력 1

6
72


문제 풀이

# 최대공약수 # 최소공배수


math 모듈에 있는 gcd 함수를 사용하거나, 유클리드 호제법으로 직접 gcd 함수를 구현하면 됩니다.

from math import gcd
a,b = map(int, input().split())
print(gcd(a,b),a*b//gcd(a,b),sep='\n')


def gcd(a, b):
	while b:
		a, b = b, a%b
	return a

a,b = map(int, input().split())
print(gcd(a,b),a*b//gcd(a,b),sep='\n')

Leave a comment