할머니의 콤퓨타 도전기
최소공배수(LCM)와 최대공약수(GCD) 본문
- 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