Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 그리디
- git오류
- 운체 1주차
- 코딩테스트
- python기본
- 참고X
- 5장
- DP
- 1주차(1)
- git기초
- 인텔리제이
- 4장
- c언어 제어문
- git 오류
- 최단거리
- 코테
- 자료구조
- c언어 기본
- 인스타
- python기초
- 데베시 1주차
- 도커
- 스택
- 백준
- Git
- python자료형
- 파이썬 알고리즘 인터뷰
- #코린이 #코딩 #할 수 있다
- c언어
- Workbench
Archives
- Today
- Total
하루살이 개발자
[알고리즘] 최대공약수(유클리드 호제법) / 최소 공배수 본문
1. 최대공약수 구하기
- 두 개의 자연수에 대한 최대공약수를 구하는 유클리드 호제법 알고리즘 이용한다.
- 유클리드 호제법
->두 자연수 a, b에 대하여(a > b) a를 b로 나눈 나머지를 R이라 하면, a와 b의 최대공약수는 b와 R의 최대공약수와 같다.
- 유클리드 호제법의 아이디어를 그대로 재귀 함수로 작성
def gcd(a, b):
if a % b == 0:
return b
else:
return gcd(b, a % b)
print(gcd(192, 162))
2. 최소공배수 구하기
- 서로 다른 수 a, b의 배수중에서 공통되는 배수 중에 가장 작은 값을 의미한다.
- 최소공배수는 a, b의 곱을 a, b의 최대 공약수로 나누면 된다.
def lcm(a, b):
return a * b / gcd(a, b)
'CS > 알고리즘' 카테고리의 다른 글
[알고리즘] 순열과 조합 (0) | 2022.12.10 |
---|---|
[알고리즘] 최소 신장 트리(Kruskal, Prim 알고리즘) (0) | 2022.02.23 |
[알고리즘] union-find 알고리즘 (0) | 2022.02.20 |
[알고리즘] 소수찾기 - 에라토스테네스의 체 (0) | 2022.02.16 |
[알고리즘] 우선순위 큐 (Priority Queue) (0) | 2022.02.16 |