백준 1934 최소공배수

전.py / / 2020. 12. 24. 20:50
728x90

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

 

1934번: 최소공배수

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

www.acmicpc.net

def uc(n1, n2):     # 유클리드 호제법 이용하여 최대 공약수 구하기
    while(n2):
        n1, n2 = n2, n1%n2
    return n1

def uc2(n1, n2):      # 유클리드 호제법 이용하여 최대 공배수 구하기
    result = (n1*n2)//uc(n1,n2)
    return result

t = int(input())
for i in range(t):
    a, b = map(int, input().split())
    n1 = a if a < b else b
    n2 = a if a > b else b
    print(uc2(a,b))

# 시간초과
t = int(input())
for i in range(t):
    a, b = map(int, input().split())
    mx = a if a > b else b
    while True:
        if mx%a==0 and mx%b==0:
            print(mx)
            break
        mx+=1
# 시간초과
t = int(input())
for i in range(t):
    a, b = map(int, input().split())
    div = a if a < b else b
    gcd = 1
    while True:
        if div == 1:
            break
        if a%div==0 and b%div==0:
            a=a//div
            b=b//div
            gcd *= div
        else:
            div-=1
    print(gcd*a*b)

# 시간초과가 나서 유클리드 호제법을 찾아봤다..

# math 모듈 이용
# 최소공배수
from math import gcd

def lcm(a, b):
	return a * b // gcd(a, b)
반응형

'전.py' 카테고리의 다른 글

리스트  (0) 2020.12.24
클래스  (0) 2020.12.24
백준 1789 수들의 합  (0) 2020.12.24
백준 11653 소인수분해  (0) 2020.12.24
파일 읽고 쓰기  (0) 2020.12.24
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기