문제
1934번이랑 같은 문제다. 두 수의 최소공배수를 출력하면 된다.
풀이
일단 이걸 보고 오면 추가적인 설명이 필요 없을 정도로 명확하게 이해가 될 것이다. 왜냐하면 같은 문제거든.
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였을건데… 이것도 그거 비슷한 듯 하다.
Reply