注册 登录
编程论坛 新人交流区

最大公约数与最大公倍数的求法

野郎中 发布于 2007-10-15 22:59, 289 次点击
#include<iostream>
using namespace std;
void main()
{
int a,b;

cout<<"请输入两个正整数:"; //读入两个正整数
cin>>a>>b;
while(a<=0||b<=0)
{
cout<<"数据错误,请输入两个正整数:" ;
cin>>a>>b;
}

int yueshu(int,int);int beishu(int,int); //函数声明

//调用并输出结果
cout<<a<<","<<b<<"的最大公约数是:"<<yueshu(a,b)<<endl;

cout<<a<<","<<b<<"的最小公倍数是:"<<beishu(a,b)<<endl;
}


int yueshu(int x,int y) //定义求最大公约数的函数
{
int i=x>y?y:x,z=1;
for(;i>1;i--)
if(x%i==0&&y%i==0)
{
z*=i;
i=x>y?y/i:x/i;
}
return z;
}


int beishu(int x,int y) //定义求最小公倍数函数
{
int i,z=yueshu(x,y);
z*=x/yueshu(x,y)*y/yueshu(x,y);
return z;
}
0 回复
1