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 |
Tags
- 배열 섞기
- 빅세타
- 이진 탐색
- Big-Oh notation
- itertools
- 일차변환
- matrix-vector product
- nonhomogeneous linear system
- one-to-one
- Big-Oh 예제
- Big Omega
- python
- matrix fo a linear transformation
- 랜덤 순서 배열
- matrix trnasformations
- Big-O 예제
- 코틀린 Hello World!
- trivial solution
- 빅오메가
- nontrivial solution
- 빅오 표기법
- 코틀린 시작하기
- linear dependence
- NumPy
- Big Theta
- 재귀함수
- solutions of matrix equation
- homogeneous linear system
- 알고리즘 분석의 실례
- recursive algorithms
Archives
- Today
- Total
코딩 연습
(파이썬) 최대공약수 구하기 본문
반응형
프로젝트 오일러 문제를 풀다보면 두 자연수의 최대공약수를 구해야 하는 경우가 빈번히 발생한다. 이때 유클리드 알고리즘(유클리드 호제법)을 이용하여 쉽게 최대공약수를 구하는 함수를 소개하고자 한다.
def gcd(a, b):
if a < b:
(a, b) = (b, a)
while b != 0:
(a, b) = (b, a % b)
return a
먼저 \(a\) 쪽이 항상 크도록 해주고, \(a\)와 \(b\) 의 최대공약수는 \(b\)와 \(a\) 를 \(b\)로 나눈 나머지와의 최대공약수와 같기 때문에, 나머지가 \(0\) 이 될때까지 이 작업을 반복해 준다. \(b\) (=나머지)가 \(0\) 일 때의 \(a\) 값이 \(a, \;b\) 의 최대공약수가 된다.
반응형
'Python' 카테고리의 다른 글
(파이썬) 복소수 & 복소수의 연산 (0) | 2016.03.15 |
---|---|
(파이썬) 분수의 표현과 그 연산 (0) | 2016.03.15 |
(파이썬) 완전제곱수 판별 (0) | 2016.03.15 |
(파이썬) 소수판정 (0) | 2016.03.15 |
(파이썬) 소인수 분해 (0) | 2016.03.15 |
Comments