// BigInt是大整数类下篇博客会介绍到,在要求不高情况下可以替换为int类型
BigInt gcd(const BigInt & a, const BigInt & b) {
BigInt c= (a > b) ? a : b;
BigInt result = (a > b) ? b : a;
c = c % result;
while (c != 0) {
BigInt temp = c;
c = result;
result = temp;
c = c % result;
}
return result;
}
2.递归实现:
BigInt gcd(const BigInt& a, const BigInt& b) {
return (b == 0) ? a : gcd(b, a % b);
}
二.最小公倍数
一个重要的等式:最大公因数*最小公倍数 = 两数的乘积
实现:
BigInt lcm(const BigInt& a, const BigInt& b) {
BigInt result = (a*b) / gcd(a, b);return result;
}