思路:先求出最大公约数,两两比较,递归求出最大约数,再通过两两之乘积除以最大公约数就是最小公倍数;
代码:
//最大公约数
int gysMax(int a, int b)
{
return a%b ? gysMax(b, a%b) : b;
}
//最小公倍数
int gbsMin(int a, int b)
{
return a*b / gysMax(a, b);
}
int _tmain()
{
int a[5] = { 4, 8, 16,32, 48 };
int iGys = a[0];
int iGbs = a[0];
for (int i = 1; i < 5;i++)
{
iGys = gysMax(iGys, a[i]);
iGbs = gbsMin(iGbs, a[i]);
}
cout << "最大公约数" << iGys << endl;
cout << "最小公倍数"<<iGbs << endl;
system("pause");
return 0;
}