문제
두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.
출력
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
풀이
def gcd(a,b):
if b==0:
return a
else:
return gcd(b, a%b)
def lcm(a,b):
t = gcd(a,b)
return t*a//t*b//t
n,m = map(int,input().split())
print(gcd(n,m))
print(lcm(n,m))
반응형
'Algorithm > 백준 알고리즘' 카테고리의 다른 글
[백준 알고리즘] 2740번, 행렬 곱셈 (0) | 2020.12.19 |
---|---|
[백준 알고리즘] 9243번, 파일 완전 삭제 (0) | 2020.12.18 |
[백준 알고리즘] 10799, 쇠막대기 (0) | 2020.12.15 |
[백준 알고리즘] 1003번, 피보나치 함수 (0) | 2020.12.14 |
[백준 알고리즘] 1018번, 체스판 다시 칠하기 (0) | 2020.12.13 |
댓글