解题思路: 先了解最大公约数与最小公倍数的关系,即 两数乘积除以最大公约数等于最小公倍数
也就是说求出最大公约数也就求出了最小公倍数
给出两个数 Max(数值大的)Min(数值小的)
Max%Min == 余数1
Min%余数1 ==余数2
。
。
。
余数n-1 % 余数 n == 0
此时,余数n就是最大公约数。
(Max * Min)/ 余数n 就是最小公倍数
注意事项:
参考代码:
#include<iostream>
using namespace std;
int getMaxFactor(int num1,int num2);
int main()
{
int a , b;
cin >> a >> b;
//判断输入两个数的大小,如果第二个数大于第一个数就将两个数调转顺序
if(b > a)
{
int temp = a;
a = b;
b = temp;
}
cout << getMaxFactor(a,b) <<" "<< (a * b)/getMaxFactor(a,b)<<endl;
return 0;
}
//函数体
int getMaxFactor(int num1,int num2)
{
if(num1 % num2 == 0)
{
return num2;
}else
{
getMaxFactor(num2,num1%num2);//如果num1 % num2 != 0 就不停的调用自身直到符合if()中的条件,返回num2也就是最大公约数
}
}
0.0分
0 人评分