알고리즘

파이썬(python) 1934번 최소공배수

HeyTeddy 2022. 1. 25. 10:34
반응형

문제링크

https://www.acmicpc.net/problem/1934

 

1934번: 최소공배수

두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있

www.acmicpc.net

import sys

t = int(sys.stdin.readline())

for i in range(t):
    a,b = map(int, sys.stdin.readline().split())
    A,B = a,b
    while a!=0:
        b = b%a
        a,b = b,a
    gcd = b
    lcm = A*B//b
    print(lcm)

먼저 최대공약수를 구한다.

최대 공약수는 둘 중에 작은 수와 큰 수%작은 수와의 최대공약수와 같다고 본다.

작은 수가 0이 될 때까지 반복. 거기서 큰 수가 최대공약수다.

두 수 A와 B를 곱한 후, 최대공약수로 나눠주면 최소공배수가 된다. 

반응형

'알고리즘' 카테고리의 다른 글

파이썬(python) 4101번 크냐  (0) 2022.01.27
파이썬(python) 2480번 주사위 세개  (0) 2022.01.27
파이썬(python) 2609번 최대공약수와 최소공배수  (0) 2022.01.25
1이 될 때까지  (0) 2022.01.24
숫자 카드 게임  (0) 2022.01.24