最大公约数
相除法是求解最大公约数的最常用算法,书写时常用函数gcd(a,b)表示
原理不加以证明
上代码
int gcd(int a, int b)
{
if(b == 0)return a;
else return gcd(b , a % b);
}
还有一种简洁写法:
int gcd(int a, int b)
{
return !b ? a : gcd(b, a % b);
}
最小公倍数
最小公倍数通常由由函数 lcd() 表示,最小公倍数 只要在最大公约数d的基础上进行 a / d * b即可得到,由于d是a的最大公约数,所以一定能整除
int gcd(int a, int b)
{
if(b == 0)return a;
else return gcd(b , a % b);
}
int lcd(int a, int b)
{
int d = gcd(a,b);
return a /d * b;
}