alpyrithm_알파이리즘

[알고리즘][Python] 백준(BOJ) 5347 LCM_파이썬 본문

Algorithm/백준 알고리즘_Python

[알고리즘][Python] 백준(BOJ) 5347 LCM_파이썬

알파이 2020. 10. 28. 15:36

 

5347 LCM    www.acmicpc.net/problem/5347

 

5347번: LCM

첫째 줄에 테스트 케이스의 개수 n이 주어진다. 다음 n개 줄에는 a와 b가 주어진다. a와 b사이에는 공백이 하나 이상 있다. 두 수는 백만보다 작거나 같은 자연수이다.

www.acmicpc.net

 

 

 

문제 풀기 전 공부할 것 : 수학, 정수론 유클리드 호제법

 

 

 

 

 

 

 

풀이

<내용>

  • a와 b의 최소 공배수를 구하는 방법은 a와 b를 곱하고 a와 b의 최대 공약수를 나누는 방법이 있다.
  • 따라서 최대 공약수를 구하는 gcd 함수를 정의한다.
    • 유클리드 호제법을 이용한다.
  • 그리고 최소 공배수를 구한다.

 

 

<코드>

import sys
input = sys.stdin.readline

def gcd(a, b):
    while b:
        mod = b
        b = a % b
        a = mod
    return a

n = int(input())
for _ in range(n):
    a, b = map(int, input().split())
    print(a*b//gcd(a, b))

 

 

 

 

 

 

 

 

728x90
반응형
Comments