티스토리 뷰
728x90
반응형
문제
코드
def gcd(a,b):
if b == 0:
return a
else:
return gcd(b, a%b)
a,b = map(int,(input().split()))
g=gcd(a,b)
lcm = g * (a//g) * (b//g)
print(g)
print(lcm)
코드설명
유클리드 호제법은 최대공약수 구하는 공식이다.
a,b의 최대공약수는 b와 a%b의 최대공약수와 같다. 즉, GCD(a, b) = GCD(b, a%b)
gcd(24,16) => gcd(16,8) => gcd(8,0)
b가 0일때 gcd = a
최소공배수 공식은 LCM = GCD * a/gcd * b/gcd
=> 6 | 24 18
ㅡㅡㅡㅡ
4 3 => 6 * 4 * 3
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 1010번 다리 놓기 (Python) (0) | 2021.03.13 |
---|---|
[백준] 11050번 이항 계수1 (Python) (0) | 2021.03.13 |
[백준] 11399번 ATM (Python) (0) | 2021.03.13 |
[백준] 11047번 동전 0 (Python) (0) | 2021.03.13 |
[백준] 1932번 정수 삼각형 (Python) (0) | 2021.03.13 |
댓글