1.2 KiB
1.2 KiB
deck:: Logseq/coding tip
-
◉ 최대공약수(GCD) 구하기
- 입력한 두 수의 최대공약수를 구하는 함수 GCD에서 아래의 두 공식이 성립한다.
- GCD(a, b) = {{c1 GCD(b, a % b)}}
id:: e416e6b1-e2e8-4fa0-a952-efa313713d5f
GCD(a, 0) = {{c1 a}}
- 위의 공식을 바탕으로 다음의 과정을 통해 최대공약수를 구한다.(a>=b) #card
id:: 9554260d-c746-4ec8-b0f4-c518f4d7bf43
-
- r = a%b
-
- a=b, b=r 로 값 갱신
-
- b = 0이면, a가 최대공약수
-
- b != 0이면 다시 1번부터 실행
-
- 위의 공식을 바탕으로 다음의 과정을 통해 최대공약수를 구한다.(a>=b) #card
id:: 9554260d-c746-4ec8-b0f4-c518f4d7bf43
- GCD(a, b) = {{c1 GCD(b, a % b)}}
id:: e416e6b1-e2e8-4fa0-a952-efa313713d5f
GCD(a, 0) = {{c1 a}}
- 유클리드 호제법 gcd 예시코드(python으로)
- 재귀방식 #card
id:: 55805df0-d7d4-4266-9a16-7ec0d020f4ea
-
def gcd(a,b): return a if b==0 else gcd(b, a%b)
-
- 반복문 방식 #card
id:: 3f29338b-aded-476a-aa3d-6795561bf589
-
def gcd(a,b): while b: a, b = b, a%b return a
-
- 재귀방식 #card
id:: 55805df0-d7d4-4266-9a16-7ec0d020f4ea
- 입력한 두 수의 최대공약수를 구하는 함수 GCD에서 아래의 두 공식이 성립한다.
-
◉ 최소공배수(LCM) 구하기
- 두 수 a,b와 그 수의 최대공약수(GCD)를 알면 a,b의 최소공배수(LCM)는 다음과 같다.
- LCM = {{c1 (a * b) / GCD}} id:: 5d368b9b-32dd-4ce6-a9ef-f0833ed7f808
- 두 수 a,b와 그 수의 최대공약수(GCD)를 알면 a,b의 최소공배수(LCM)는 다음과 같다.