31 lines
1.2 KiB
Markdown
31 lines
1.2 KiB
Markdown
## **❖ 프로그래밍 관련 이론 정리**
|
|
- ### **► 알고리즘**
|
|
- ### **◼︎ 유클리드 호제법(최소공배수, 최대공약수 구하기)**
|
|
- ◉ **최대공약수(GCD) 구하기**
|
|
id:: 687253f3-7eb2-421e-b8c0-d9b96d4d7323
|
|
- 입력한 두 수의 최대공약수를 구하는 함수 GCD에서 아래의 두 공식이 성립한다.
|
|
- GCD(a, b) = GCD(b, a % b)
|
|
- GCD(a, 0) = a
|
|
- 위의 공식을 바탕으로 다음의 과정을 통해 최대공약수를 구한다.(a>=b)
|
|
- 1. r = a%b
|
|
- 2. a-b, b=r 로 값 갱신
|
|
- 3. b = 0이면, a가 최대공약수
|
|
- 4. b != 0이면 다시 1번부터 실행
|
|
- 유클리드 호제법 gcd 예시코드
|
|
id:: 687255f3-27a7-4bef-a684-60daab2fa33f
|
|
- 재귀방식
|
|
- ```python
|
|
def gcd(a,b):
|
|
return a if b==0 else gcd(b, a%b)
|
|
```
|
|
- 반복문 방식
|
|
- ```python
|
|
def gcd(a,b):
|
|
while b:
|
|
a, b = b, a%b
|
|
return a
|
|
```
|
|
- ◉ **최소공배수(LCM) 구하기**
|
|
id:: 687256b1-be35-4052-a12e-133e2c3b2f50
|
|
- 두 수 a,b와 그 수의 최대공약수(GCD)를 알면 a,b의 최소공배수(LCM)는 다음과 같다.
|
|
- LCM = (a * b) / GCD |