题目:
设计一函数求两个正整数的最大公约数和最小公倍数。
代码:
#include <iostream>
using namespace std;
int divisor(int a, int b, int dis);
int main()
{
unsigned int a, b, dis = 1, result;
cout << "请输入两个正整数:";
cin >> a >> b;
result = divisor(a, b, dis);
cout << endl << a << "和" << b << "的最大公约数为" << result << ",最小公倍数为" << a * b / result << endl << endl;
system("pause");
return 0;
}
int divisor(int a, int b, int dis)
{
if (a == b) return 1;
//永远使a>b,简化下面的代码
if (a<b)
{
dis = a;
a = b;
b = dis;
}
while (dis != 0)
{
if (a > b)
{
dis = a % b;
a = b;
b = dis;
}
}
return a;
}