반응형
유클리드 호제법은 두 자연수의 최대공약수(Greatest Common Divisor, GCD)를 찾는 알고리즘임
큰 수에 대해서도 빠르게 최대공약수를 계산이 가능
두 자연수 와 가 있을 때 (), 를 로 나눈 나머지를 이라고 합시다.
이때, 와 의 최대공약수는 와 의 최대공약수와 같습니다.
이 성질을 반복적으로 사용하여 나머지가 0이 될 때까지 과정을 반복합니다.
나머지가 0이 되는 단계에서의 나누는 수가 와 B의 최대공약수입니다.
예시
#include <iostream>
using namespace std;
int gcd(int a, int b) {
while (b != 0) {
int r = a % b;
a = b;
b = r;
}
return a;
}
int main() {
int A = 252, B = 105;
cout << "GCD of " << A << " and " << B << " is " << gcd(A, B) << endl;
return 0;
}
반응형
LIST
'프로그래밍 > 자료구조와 알고리즘' 카테고리의 다른 글
트리 순회 (0) | 2024.04.21 |
---|---|
트라이 (Trie) (0) | 2024.04.20 |
오일러 피 함수 (0) | 2024.03.28 |
병합 정렬 (0) | 2023.03.10 |
선택정렬 (0) | 2023.02.15 |