문제 : https://www.acmicpc.net/problem/2609
두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램이다.
import sys
input = sys.stdin.readline
# 유클리드 호제법으로 구하는 최대공약수
def gcd(N, M):
if(M == 0):
return N
return gcd(M, N%M)
N, M = map(int, input().split())
g = gcd(N, M)
lcm = (N*M) // g # 최소공배수
print(g)
print(lcm)
- 최대공약수 : 유클리드 호제법으로 구하기
- 최소공배수 : N과 M을 곱해 최대공약수로 나눠주면 최소공배수가 된다.
'코딩테스트 > 백준' 카테고리의 다른 글
| [백준] 2839번 : 설탕 배달 (Python) (0) | 2024.12.26 |
|---|---|
| [백준] 1978번 : 소수 찾기 (Python) (0) | 2024.12.26 |
| [백준] 1212번 : 8진수 2진수 (Python) (0) | 2024.06.13 |
| [백준] 1373번 : 2진수 8진수 (Python) (1) | 2024.06.13 |
| [백준] 17087번 : 숨바꼭질 6 (Python) (1) | 2024.06.13 |