2609 | 최대 공약수와 최소 공배수 | 실버 V
https://www.acmicpc.net/problem/2609

내 코드
a, b = map(int, input().split())
# 최대 공약수
for i in range(min(a,b), 0, -1):
if a%i == 0 and b%i == 0:
print(i)
break
# 최소 공배수
for i in range(max(a,b), a*b+1, max(a,b)):
if i%a == 0 and i%b == 0:
print(i)
break
이상 코드
유클리디안 호제법
def get_gcd(a, b):
while b != 0:
a, b = b, a % b
return a
def get_lcm(a, b):
return a * b // get_gcd(a, b)
a, b = map(int, input().split())
print(get_gcd(a, b))
print(get_lcm(a, b))
학습
- a를 b로 나눈 나머지(mod)와 b의 최대공약수(gcd)는 a와 b의 최대공약수(gcd)는 같다
- 최소공배수(lcm)는 두 수의 곱을 최대공약수로 나눈 것
반응형
'Algorithm > BOJ' 카테고리의 다른 글
| [BOJ][#] 1920 | 수 찾기 (0) | 2022.01.24 |
|---|---|
| [BOJ] 1918 | 후위 표기식 (0) | 2022.01.21 |
| [BOJ] 2846 | 오르막길 (0) | 2022.01.19 |
| [BOJ] 1929 | 소수 구하기 (0) | 2022.01.13 |
| [BOJ] 1436 | 영화감독 숌 (0) | 2022.01.06 |
댓글