티스토리 뷰

문제 풀다가 유클리드 호제법이 나왔다.

옛날에 정리해 놓은 줄 알았는데 없어서 정리.

 

유클리드 호제법 (Greatest Common Divisor) : 최대공약수 구함

gcd(a,b) = gcd(b, a%b)가 성립

 

int gcd(int a, int b)
{
    if(b == 0) return a;
    return gcd(b, a%b);
}

 

int gcd(int a, int b)
{
    int c;
    while(b != 0)
    {
        c = a % b;
        a = b;
        b = c;
    }
    return a;
}

a와 b의 최대공약수를 리턴한다.

 

 

 

최소공배수 (Least Common muliple)

 

최소공배수는 다음이 성립한다 

 

a * b = lcm(a, b) * gcd(a, b)

 

lcm(a, b) = (a * b) / gcd(a, b) 이므로 

 

a와 b의 곱한 값에 최대공약수를 나눠주면 된다.

'알고리즘' 카테고리의 다른 글

ccw (Counter Clockwise)  (0) 2022.02.24
트라이 자료구조  (0) 2022.02.22
최소 신장 트리(MST), 크루스칼 알고리즘 (kruskal)  (0) 2022.01.18
c++) Floyd Warshall  (0) 2021.12.28
bfs 탐색 깊이 기록하기  (0) 2021.07.19
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함