티스토리 뷰
일반 풀이
def gcd_get(a, b):
GCD = 1
for i in range(1, 10001):
if a % i == 0 and b % i == 0:
if i > GCD:
GCD = i
aa = a // GCD
bb = b // GCD
print(GCD)
print(aa * bb * GCD)
유클리드 호제법으로 최대공약수(GCD) 구하기
# 유클리드 호제법
# A를 B로 나눈 나머지가 r이라면 A와 B의 최대공약수는 B와 r의 최대공약수와 같다.
# GCD(30, 18) = GCD(18, 12) = GCD(12, 6)
# 즉, 30과 18의 최대공약수는 12와 6의 최대공약수와 같다.
두 수의 곱 = 최대공약수(LCM) x 최소공배수(GCD)
# 유클리드 호제법
# A를 B로 나눈 나머지가 r이라면 A와 B의 최대공약수는 B와 r의 최대공약수와 같다.
# GCD(30, 18) = GCD(18, 12) = GCD(12, 6)
# 즉, 30과 18의 최대공약수는 12와 6의 최대공약수와 같다.
def gcd_get(a, b):
while b != 0:
r = a % b # 나머지를 구한 후 a를 b로, b를 r로 바꾸고 반복한다.
a = b
b = r
return a # b가 0이면 a가 최대공약수이므로 종료한다.
print(gcd_get(a, b))
# 두 수의 곱은 두 수의 최대공약수와 최소공배수의 곱과 같다.
lcd = a * b // gcd_get(a, b)
print(lcd)
'Coding Test' 카테고리의 다른 글
[Jungol] 2514. 문자열 찾기 (0) | 2021.12.08 |
---|---|
[Jungol] 1002. 최대공약수와 최소공배수(RE) (0) | 2021.12.06 |
[Jungol] 2809. 약수 (0) | 2021.12.06 |
[Jungol] 1692. 곱셈 (0) | 2021.12.06 |
[Jungol] 766. 문자열1-형성평가 1 (0) | 2021.12.06 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 개발자로드맵
- 폰트
- 개발언어추천
- ssafy후기
- 클린코더
- 클린코드
- SSAFY
- ssafy6기
- 디즈니얼굴
- 깃허브계정2개
- 개발언어순위
- 개발자도서추천
- 임대차3법
- 폰트추천
- 맥과윈도우로깃허브
- 상업용무료폰트
- 깃허브계정
- 브왈라
- 한글무료폰트추천
- 싸피
- 개발도서추천
- 개발자
- 개발자커리
- 싸피6기
- ssafy결과
- ssafy합격후기
- intj여자
- 무료폰트추천
- 개발자책추천
- 코딩도서
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함