개념
호율적으로 최대공약수를 구하는 방법이다. O(log n)의 시간복작도를 가진다.
최대공약수를 구하는 원리는 위의 그림과 같이 간단하다.
나누는 수를 나머지로 나누는 과정을 반복하고 나머지가 0이 나올 때의 나누는 수가 구하려는 최대공약수가 된다.
구현
int gcd(int a, int b)
{
if(b == 0)
return a;
if(a % b == 0)
return b;
else
return gcd(b, a % b);
}
'자료구조, 알고리즘 > 개념' 카테고리의 다른 글
[알고리즘] 에라토스테네스의 체 (0) | 2024.02.05 |
---|---|
[알고리즘] 제곱근으로 소수 구하기 (0) | 2024.02.04 |
[알고리즘] O(nlogn) 정렬 (0) | 2023.11.07 |
[알고리즘] 시간복잡도 (0) | 2023.11.06 |
[알고리즘] 이진트리 (0) | 2023.10.21 |