代码改变世界

C++中求两个正整数的最大公约数和最小公倍数

2015-03-27 09:41  itwolf  阅读(2390)  评论(0编辑  收藏  举报

最大公约数直接用辗转相除法,最小公倍数就是两个数的乘积除以最大公约数

#include<iostream>
using namespace std;
int gys(int x,int y)
{
    return y? gys(y,x%y):x;
}
int main()
{   
    int x,y;
    cin>>x>>y;
    cout<<"最大公约数是:";
    cout<<gys(x,y)<<endl;
    cout<<"最小公倍数是:";
    cout<<(x*y)/gys(x,y);
    return 0;
}