最大公约数(辗转相除法)和最小公倍数
#include <iostream>
using namespace std;
// 最大公约数最小公倍数
int hcf(int, int); //函数的 声明
int lcd(int, int, int);
int main()
{
int u, v, h, l;
cin >> u >> v;
h = hcf(u, v);
cout << "H.C.F=" << h << endl;
l = lcd(u, v, h);
cout << "L.C.D=" << l << endl;
system("pause");
return 0;
}
int hcf(int u, int v) //函数的定义
{
int t, r;
if (v > u)// 交换 两个数
{
t = u;
u = v;
v = t;
}
while ((r = u % v) != 0)
{
u = v;
v = r;
}
return(v);
}
//最小公倍数 = 两数相乘 ÷ 两数的最大公约数
int lcd(int u, int v, int h)
{
return(u*v / h);
}
思想 如下:
- 先排序
- 在判断
- 相除