Python/백준 (BOJ)

[BOJ][B2]초6 수학 - 2702

ㅋㅋ! 2025. 9. 2. 13:00

 

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