您的位置:首页 > 其它

辗转相除法(欧几里得)求最大公约数和最小公倍数

2014-11-09 18:06 274 查看
循环求解:

int gcd(int a, int b)
{
int temp;
if (a < b) {                    //a<b时,交换a和b
temp = a;
a = b;
b = temp;
}
while (b > 0) {
temp = a % b;
a = b;
b = temp;
}
return a;
}


递归求解:

int gcd(int a, int b)
{
if (b == 0)
return a;
else
return gcd(b, a % b);  //如果a<b,第一次执行已经交换过来
}



最小公倍数用两个数的乘积除以最大公约数:(a * b) / gcd(a, b)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: