sm 기술 블로그

108. 1934(최소공배수) 본문

문제/백준_파이썬

108. 1934(최소공배수)

sm_hope 2022. 6. 24. 20:03

함수를 이용한 풀이

import math
import sys
input = sys.stdin.readline

T = int(input())
result = ""

for _ in range(T):
    x, y = map(int, input().split())
    result += str(math.lcm(x, y)) + "\n"

print(result)

함수를 이용하지 않은 풀이

import sys
input = sys.stdin.readline

T = int(input())
result = ""


def GCD(x, y):
    while(y != 0):
        r = x % y
        x = y
        y = r
    return x


def LCM(x, y):
    return int(x*y / GCD(x, y))


for _ in range(T):
    x, y = map(int, input().split())
    result += str(LCM(x, y)) + "\n"

print(result)

문제요약

최소공배수를 구하는 문제

설명

gcd => 최대 공약수

lcm => 최소 공배수

 

최대공약수는 x % y 를 진행하다가 0이나올 때 x의 값이 최대 공약수이다.

예를 들어 24 18이 들어오면,

1)

24 % 18 = 6 = r

x = 18

y = 6

 

2) 18 % 6 = 0 = r

x = 6

y = 0

 

y가 0이 되었으므로 x값을 리턴한다.

 

최소 공배수는 x와 y를 곱한 값에서 최대공약수로 나누어지면 값이 나온다.

'문제 > 백준_파이썬' 카테고리의 다른 글

110. 3036 링  (0) 2022.06.25
109. 2981(검문)  (0) 2022.06.25
107. 2609(최대공약수와 최소공배수)  (0) 2022.06.24
106. 1037(약수)  (0) 2022.06.24
105. 5086(배수와 약수)  (0) 2022.06.24
Comments