最大公约数与最小公倍数

求最大公约数(递归)

typename  gcd(typename a, typename b)//求最大公约数
{
    return  b == 0 ? a : gcd(b, a % b);//换了个位置,b==0代表余数为零且无法继续下去
}

即使b>a,在经过一次递归后都会变成(new)a>(new)b
这样写鲁棒性得以提高

知道最大公约数后可以直接用公式将最小公倍数求出

用a与b的乘积除以他的最大公约数即可得

最小公倍数=(a*b)/最大公约数

posted @ 2021-12-11 17:04  AlexGong  阅读(96)  评论(0)    收藏  举报