barcode

백준 13241번 풀이

BOJ/[BOJ] Python

문제

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

 

13241번: 최소공배수

정수 B에 0보다 큰 정수인 N을 곱해 정수 A를 만들 수 있다면, A는 B의 배수이다. 예: 10은 5의 배수이다 (5*2 = 10) 10은 10의 배수이다(10*1 = 10) 6은 1의 배수이다(1*6 = 6) 20은 1, 2, 4,5,10,20의 배수이다. 다

www.acmicpc.net

1934번이랑 같은 문제다. 두 수의 최소공배수를 출력하면 된다.

 

풀이

https://koreanraichu.tistory.com/329

 

백준 1934번 풀이

문제 https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고

koreanraichu.tistory.com

일단 이걸 보고 오면 추가적인 설명이 필요 없을 정도로 명확하게 이해가 될 것이다. 왜냐하면 같은 문제거든.

 

import sys

def Euclidean(a, b):
    while b != 0:
        [a, b] = [b, a%b]
    return a

N, M = map(int, sys.stdin.readline().split())

GCD = Euclidean(N,M)
LCM = GCD * (N // GCD) * (M // GCD)

print(LCM)

진짜로 이거 내면 맞는다. LCM은 최소공배수, GCD는 최대공약수. 그럼 이 시점에서 여러분들은 한가지가 궁금할것이다. 아니, 아무리 백준이라지만 똑같은 문제를 두번이나 낸다고요? 왜?

 

마우스로 그어서 좀 삐뚤게 됐는데 아래를 잘 보자. C/C++과 자바에는 제약이 있는 것을 알 수 있다.

 

몇 번 풀이였는지는 모르겠는데 아무튼, C언어에서는 숫자 크기에 따른 정수 형태가 정해져 있다고 했었다. 그래서 파이썬이면 걍 풀어도 되는 문제인데 C언어에서는 어유 이게 뭔 괴랄한 풀이인가 싶은 문제가 있었음.. 아마 큰 수 A+B였을건데... 이것도 그거 비슷한 듯 하다.

'BOJ > [BOJ] Python' 카테고리의 다른 글

백준 2485번 풀이  (0) 2024.02.26
백준 1735번 풀이  (0) 2024.02.25
백준 11478번 풀이  (0) 2023.12.10
백준 1269번 풀이  (0) 2023.10.29
백준 1764번 풀이  (0) 2023.10.29