
https://www.acmicpc.net/problem/2702
문제 전문은 링크 참조
문제가공
입력된 수의 최소공배수(lcm)와 최대 공약수(gcd)를 출력한다.
코드작성
- 최대 공약수(gcd) 계산 ( 유클리드 호제법)
a,b (a>b)의 최대 공약수는 b와 a%b의 최대 공약수와 같다 - 최소 공배수(lcm) 계산
lcm = a*b // gcd(a,b)
def gcd (a,b):
if b>a : b,a=a,b
if a%b==0:
return b
else:
return gcd(b, a%b)
def lcm (a,b):
return (a*b)//gcd(a,b)
n = int(input())
for _ in range(n):
a,b = map(int,input().split())
print(lcm(a,b),gcd(a,b))
리뷰
python 에서는 math 패키지에 gcd lcm을 구하는 함수가 내장되어있다.
import math
print(math.lcm(10,4),math.gcd(10,4))
'Python > 백준 (BOJ)' 카테고리의 다른 글
| [BOJ][레벨]이진법 시계 - 2704 (0) | 2025.09.04 |
|---|---|
| [BOJ][B2]Cryptoquote - 2703 (0) | 2025.09.03 |
| [BOJ][B2]줄 세우기 - 2605 (1) | 2025.09.01 |
| [BOJ][B2]대표값- 2592 (0) | 2025.08.31 |
| [BOJ][B2]대표값2 - 2587 (0) | 2025.08.30 |