一丶 最大公因数求法:
辗转相除法(也称欧几里得算法)原理:
![](https://i-blog.csdnimg.cn/blog_migrate/9c50d1045f0f01697da00ad9e72740c0.png)
二丶最小公倍数求法:两个整数的最小公倍数等于两整数之积除以最大公约数
C++ 代码实现
#include <iostream>
using namespace std;
//辗转相除法(欧几里得算法)
int gcd(int a, int b)
{
int da = max(a,b);
int xiao = min(a,b);
if(da % xiao == 0)
return xiao;
else
return gcd(xiao, da % xiao);
}
// 两个整数的最小公倍数等于两整数之积除以最大公约数
int lcm(int a, int b)
{
return a*b / gcd(a, b);
}
int main()
{
int x, y;
cout << "输入两个数字(按Ctrl+Z结束输入): ";
while(cin >> x >> y)
cout << "这两个数的最大公因数是:" << gcd(x, y) << endl
<< "这两个数的最小公倍数是:" << lcm(x, y) << endl;
}