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