编写一个程序实现:通过函数的嵌套调用,求两个正整数的最小公倍数
【要求】
①编写函数int hcf(int xint y)求两个正整数的最大公约数;
②编写函数int lcd(int xint y)通过调用hcf()函数求两个正整数的最大公约数,再求最小公倍数;
③在主函数中输入两个正整数,然后调用lcd()函数求解,并输出结果
输入格式:
两个正整数,以空格分隔
输出格式:
最小公倍数(整型)
输入用例1:
-24 64
输出用例1:
无效数据
输入用例2:
24 -64
输出用例2:
无效数据
输入用例3:
-24 -64
输出用例3:
无效数据
输入用例4:
24 64
输出用例4:
24和64的最小公倍数是192
输入用例5:
45 25
输出用例5:
45和25的最小公倍数是225
#include <iostream>
using namespace std;
// 求两个正整数的最大公约数
int hcf(int x,int y)
{
while(y!=0)
{
int temp=y;
y=x%y;
x=temp;
}
return x;
}
// 求两个正整数的最小公倍数
int lcd(int x,int y)
{
int k=hcf(x,y);
int result=(x*y)/k;
return result;
}
int main()
{
int num1,num2;
cout<<"请输入两个正整数,以空格分隔:"<<endl;
cin>>num1>>num2;
// 判断输入是否有效
if (num1<=0||num2<=0)
{
cout<<"无效数据"<<endl;
return 0;
}
int result=lcd(num1, num2);
cout<<num1<<"和"<<num2<<"的最小公倍数是"<<result<<endl;
return 0;
}