最大公约数与最小公倍数_c/c++


gcd:greatest common divisor,最大公约数   欧几里得算法,也就是辗转相除法。公式:gcd(a, b) = gcd(b, a % b)   推论:gcd(b, a) == gcd(b, a-k*b)  
 1 //gcd模板
 6 int gcd(int x, int y) {
 7     return !x ? y : gcd(y % x, x);
 8 }

推论:

  最小公倍数:   x, y的最小公倍数为:x * y / gcd(x, y)