您的位置:首页 > 其它

最大公约数与最小公倍数

2016-02-21 10:39 309 查看
求两数最大公约数

辗转相除法:先大数除以小数,若整除则小数位最大公约数,若未整除,小数除以余数,直至整除,此时除数为最大公约数。

递归实现:

int gcd(int x,int y)

{

return y?gcd(y,x%y):x;

}

求两数最小公倍数:借助最大公约数来求。最小公倍数 = 两数之积 / 最大公约数。



升华:三个数最小公倍数:先求两个数的最大公约数->最小公倍数,再将该最小公倍数与另一数求最小公倍数。

int main()

{
int x,y,z,sum,res;
cin.sync_with_stdio(false);//加快cin读取速度
cin>>x>>y>>z;
sum = x*y;
sum = sum / gcd(x,y);
res = sum*z;
res = res / gcd(sum,z);
cout<<res<<endl;
return 0; 

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: