본문 바로가기

CS/알고리즘

[알고리즘] LCM

LCM


최소공배수(LCM, Least Common Multiple)는 두 개 이상의 정수의 공통 배수 중 가장 작은 수를 의미합니다.

LCM을 구하는 방법에는 여러 방법이 있지만, 가장 흔히 알려진 방법은 GCD를 이용하는 방법입니다.

 

GCD


 

[알고리즘] GCD - 유클리드 호제법

유클리드 호제법이란유클리드 호제법 또는 유클리드 알고리즘은 2개의 자연수 또는 정식의 최대공약수(Greatest Common Divisor, GCD)를 구하는 알고리즘입니다. 호제법이란 말은 두 수가 서로 상대방

tkxxls.tistory.com

 

 

LCM 알고리즘


두 수 a와 b의 최소 공배수 lcm(a, b)는 다음과 같이 계산됩니다

lcm(a, b) = a × b / gcd(a, b)

LCM 구현


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

int lcm(int a, int b) {
    return a * b / gcd(a, b);
}

LCM 시간복잡도


lcm의 시간복잡도는 gcd 시간복잡도에 의존합니다.

따라서 lcm의 시간복잡도는 log(min(a, b))입니다.

 

 

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

[알고리즘] 라빈-카프 알고리즘  (0) 2024.08.29
[알고리즘] 다익스트라  (0) 2024.07.31
[알고리즘] 오일러 피  (0) 2024.06.26
[알고리즘] 소수 구하기  (0) 2024.06.18
[알고리즘] GCD - 유클리드 호제법  (0) 2024.06.12