코딩테스트 준비/백준

[백준] 1934번 최소공배수 - 파이썬(Python)

youjin86 2021. 8. 9. 02:23

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

 

1934번: 최소공배수

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

www.acmicpc.net

 

문제

 

21.02.15 접근법

 

문제 그대로 최소공배수 구하면 된다.

최대공약수 구하고 각 수 곱해서 최대공약수로 나눠주기

 

 

21.02.15 코드

import sys

T=int(input())

for i in range(T):
    a,b=map(int,sys.stdin.readline().strip().split())
    aa,bb=a,b

    while bb!=0:
        aa=aa%bb
        aa,bb=bb,aa

    print(a*b//aa)

 

21.08.09 접근법

 

1. 최대공약수(GCD)를 유클리드 알고리즘으로 구하기

2. 입력 값들을 곱해 GCD로 나눠 최소공배수 구하기

 

유클리드 알고리즘은 아래 글에 설명되어 있음.

2021.08.09 - [코딩테스트 준비/백준] - [백준] 2609번 최대공약수와 최소공배수 - 파이썬(Python)

 

[백준] 2609번 최대공약수와 최소공배수 - 파이썬(Python)

https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 문

youjin86.tistory.com

 

 

21.08.09 코드

import sys

T=int(input())

for i in range(T):
    a,b=map(int,sys.stdin.readline().split())
    aa,bb=a,b

    while a%b!=0:
        a,b=b,a%b

    print(aa*bb//b)