728x90
유클리드 호제법 또는 유클리드 알고리즘
2개의 자연수 또는 정식의 최대공약수를 구하는 알고리즘
호제법이란 말은 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘
예시) 1112와 695를 반복해서 MOD 연산
유클리드 호제법(Euclidean-algorithm)
유클리드 호제법에 대해 알아보자.
velog.io
- 최대공약수 GCD (Greatest Common Divisor)
- 139일 때 나머지가 0이 되므로 최대공약수는 139가 된다.
- 최소공배수 LCM (Least Common Multiple)
- 두개의 수를 곱한 뒤 최대공약수로 나눠주면됨
- (1112 * 695) / 139 = 5560
코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | // 반복문 int GCD_Func_(int a, int b) { int tmp; do { tmp = a % b; a = b; b = tmp; } while(tmp); return a; } // 재귀 int GCD_Func_(int a, int b) { int tmp = a % b; if(tmp == 0) { return b; } else { return GCD_Func_(b, tmp); } } | cs |
728x90
반응형
'프로그래밍 > C++' 카테고리의 다른 글
[C++] 소수(Prime Number) 효율적으로 구하기 (0) | 2022.12.09 |
---|---|
[C++] pow, sqrt 함수 정리(제곱, 제곱근, 루트) (0) | 2022.12.09 |
[C++ STL] 문자열 치환 (replace, regex_replace) (0) | 2022.12.08 |
[C++ STL] std::vector 개념과 멤버 함수 정리 - 자료구조 (0) | 2022.12.07 |
C++ sort 알고리즘 완벽 정리 (예제 첨부) (0) | 2020.11.05 |
댓글