문제
두 정수 a와 b 최소공배수는 두 수의 공통된 배수 중 가장 작은 수이고, 최대공약수는 두 수의 공통된 약수중 가장 큰 수이다.
a와 b가 주어졌을 때, 최소공배수와 최대공약수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수 T(1<=T<=1,000)가 주어진다. 각 테스트 케이스는 두 정수 a와 b로 이루어져 있고, 공백으로 구분되어 있다. (1 <= a,b <= 1,000)
ex)
3
5 10
7 23
42 56
출력
각 테스트 케이스에 대해 최소공배수와 최대공약수를 차례대로 출력한다.
ex)
10 5
161 1
168 14
코드
import sys
def gcd(a,b):
if a%b==0:
return b
elif b==0:
return a
else:
return gcd(b,a%b)
def lcm(a,b):
return a*b//gcd(a,b)
n=int(sys.stdin.readline())
for i in range(n):
a,b=map(int,sys.stdin.readline().split())
print(lcm(a,b),end=" ")
print(gcd(a,b))
'Python > 백준 python' 카테고리의 다른 글
[파이썬/python] 백준 2720번 세탁소 사장 동혁 (0) | 2022.04.15 |
---|---|
[파이썬/python] 백준 16435번 스네이크버드 (0) | 2022.04.14 |
[파이썬/python] 백준 5063번 TGN (0) | 2022.04.13 |
[파이썬/python] 백준 4458번 첫 글자를 대문자로 (0) | 2022.04.12 |
[파이썬/python] 백준 15873번 공백 없는 A+B (0) | 2022.04.12 |