最大公约数
碾转相除法:①gcd(la, b)=gcd(b, a%b) ②0的最大公约数就是另一个数
最小公倍数
两个数的乘积等于这两个数的最大公约数与最小公倍数的积。最小公倍数就是a * b / gcd(a, b)。
int gcd(long a, long b)
{
return b == 0 ? a : gcd(b, a % b);//gcd(a,b) = gcd(b,a % b) 0的最大公约数就是另一个数
}
int lcm(int a, int b) {//两个数的乘积等于这两个数的最大公约数与最小公倍数的积。即(a,b)×[a,b]=a×b
if (a == 0 || b == 0) {
return 0;
}
return a * b / gcd(a, b);
}
int main() {
long a = 12;
long b = 36;
cout << gcd(a, b)<<endl;
cout << lcm(a, b) << endl;
}