您的位置:首页 > 其它

最大公约数和最大公倍数

2016-04-18 20:17 344 查看
求最大公约数的方法:辗转相除法,过程如下

1、当a%b == 0,那么a与b的最大公约数就是b。

2、当a%b != 0,那么有tmp = a%b; a = b; b = tmp。

求最大公倍数的方法:两数相乘除以它们的最大公约数。

代码如下(VS2015)

#include "stdafx.h"
//最大公约数
int greatestCommonDivisor(int a, int b) {
int tmp;
if (b == 0)
return b;
while ((tmp = a%b) != 0) {
a = b;
b = tmp;
}
return b;
}
//最大公倍数
int  leastCommonMultiple(int a, int b) {
if (b == 0)
return b;
return (a*b) / greatestCommonDivisor(a,b);
}
int main()
{
int gcd = greatestCommonDivisor(12,10);
int lcm = leastCommonMultiple(12,10);
printf("12 10 :\n");
printf("gcd: %d, lcm: %d\n",gcd,lcm);
getchar();
return 0;
}


测试结果如下



好像这个问题经常会被问道,这里简单记录一下。:)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: