用c++编程:接收用户输入的两个正整数m和n,求其最大公约数和最小公倍数.

谁能回答,非常感谢

c++也可以使用scanf和printf来输入输出,并且比较不易出错,最大公约数使用欧几里德辗转相除法伪代码如下:c=m mod nwhile c!=0 do {m=n n=c c=m mod n}print(n) 而最小公倍数就是m*n/gcd(m,n)
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-01
#include"iostream.h"
#include"math.h"
int minfew(int x,int y)//正整数最小公倍
{
if(x>0&&y>0)
{
int h=abs(x),j=abs(y),k;
if(h<j)
{
k=h;
h=j;
j=k;
}
while(h%j!=0)
{
k=h%j;
h=j;
j=k;
}
return j;
}
else
return 0;
}int maxapp(int x,int y)//正整数最大公约数
{
if(minfew(x,y))
return x*y/minfew(x,y);
else
return 0;
}void main()
{
int m,n;
cin>>m>>n;//正整数m.n
cout<<"最小公倍数:"<<minfew(m,n)<<endl
<<"最大公约数:"<<maxapp(m,n)<<endl;

}
相似回答
大家正在搜