SU_DING_GI

[2609] - 최대공약수와 최소공배수 본문

CODING TEST/Algorithm Problem

[2609] - 최대공약수와 최소공배수

Soonga00 2024. 2. 14. 15:08
728x90

문제

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

 

입력

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

 

출력

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

 

예제 입력 1

24 18

 

예제 출력 1

6
72

 

풀이

유클리드 호제법을 활용하여 최대 공약수와 최소 공배수를 구해줬다.

 

import sys
input = sys.stdin.readline

def gcd(m,n):
    if m < n:
        m, n = n, m
    if n == 0:
        return m
    if m % n == 0:
        return n
    else:
        return gcd(n, m%n)
        
def lcm(m, n):
	return (m * n) // gcd(m, n)

a, b = map(int, input().split())
print(gcd(a, b))
print(lcm(a, b))

'CODING TEST > Algorithm Problem' 카테고리의 다른 글

[2023] 신기한 소수  (3) 2024.02.29
[6064] 카잉 달력  (0) 2024.02.29
[1735] 분수 합  (0) 2024.02.28
[10610] 30  (2) 2024.02.28
[1475] 날짜 계산  (0) 2024.02.14