할머니의 콤퓨타 도전기

최소공배수(LCM)와 최대공약수(GCD) 본문

Algorithm/Algorithm 정리

최소공배수(LCM)와 최대공약수(GCD)

ji.o.n.e 2021. 2. 12. 14:32
  • GCD
int gcd(int a, int b)
{
    if (b == 0) return a;
    else return gcd(b, a%b);
}

 

  • LCM

LCM = (a*b)/GCD

GCD(a,b) = G라고 둠. a = Gx, b = Gy (x, y는 서로소인 정수) 성립. 따라서 a, b의 합집합은 G, x, y
즉, a*b의 최소공배수는 G*x*y. a*b = G*G*x*y이므로 LCM = (a*b)/G = (a*b)/GCD

 

 

 

'Algorithm > Algorithm 정리' 카테고리의 다른 글

하노이 탑 알고리즘  (0) 2021.02.18
크루스칼 (Kruskal) 알고리즘, 최소 신장 트리 (MST)  (0) 2021.02.16
Floyd Warshall 알고리즘  (1) 2021.02.06
위상 정렬 (Topology Sort)  (0) 2021.01.30
Knapsack 알고리즘  (0) 2021.01.30
Comments