在C++里怎样求两个数的最大公约数和最小公倍数

来源:百度知道 编辑:UC知道 时间:2024/05/05 16:41:46
#include<iostream>
using namespace std;
main()
{
int m=0,n=0;
cout<<"请输入两个数(整型,从小到大):";
cin>>n>>m;
while(n>m)
{
cout<<"输入格式错误,请重新输入.:";
cin>>n>>m;
}
int a=m;
int b=n;
int i=m%n;
while(i!=0)
{
m=n;
n=i;
i=m%n;
}
cout<<endl
<<b<<"与"<<a<<"的最大公约数是:"<<n<<endl;
cout<<b<<"与"<<a<<"的最小公倍数是:"<<b*a/n<<endl;
}
还有没有更好的方法

你是天大的吗?
# include<iostream.h>
int f1(int m,int n);
int f2(int r,int s);
void main()
{
int a, b, p, q ;
cout<<"请输入两个数"<<endl;
cin>>a>>b;
p=f1(a,b);
q=f2(a,b);
cout<<"最大公约数"<<p<<' '<<"最小公倍数"<<q<<endl;
}
int f1(int m,int n)
{
int i;
for(i=m;m%i!=0||n%i!=0;i--);//为什么“;”不能省?

return i;
}
int f2(int r,int s)
{ int i;
for(i=r;i%r!=0||i%s!=0;i++);

return i;

}

最大公约数用辗转相除法
最小公倍数用两数相乘再除以最大公约数