C语言、输入两个整数,求最小公倍数,最大公约数。(要用到break哦~)

求答案~要用Microsoft Visual C++6.0写的

#include<stdio.h>
void Func(int x,int y);
void main()
{
int n1,n2;
printf("请输入两个整数:");
scanf("%d %d",&n1,&n2);//注意两个整数间的空格
Func(n1,n2);
}

void Func(int x,int y)
{
int min=x*y;//最小公倍数
int max;//最大公约数
int i;
if(x<y){ int temp=x; x=y; y=temp; }//使 x 大于 y
for(max=y;max>0;max--)
{
if(x%max==0 && y%max==0)
{
printf("%d %d的最大公约数为:%d\n",x,y,max);
break;
}

}
min/=max;
printf("%d %d的最小公倍数为:%d\n",x,y,min);

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-15
#include"stdio.h"

void main(){
int m,n,m0,n0,r=1;
printf("m,n=");
scanf("%d%d",&m,&n);
m0=m,n0=n;
while (r){
r=m0%n0;
m0=n0;
n0=r;
}
printf("最大公约数:%d\n",m0);
printf("最小公约数:%d\n",m*n/m0);
}追问

最后输出的是最小公倍数吧,你打错了,而且输出不了。最大公约数可以输出

追答

是啊,没有错啊。

本回答被提问者采纳
第2个回答  2011-11-15
int m,n
cin>>m;
cin>>n;
int a=m,b=n,c;
while ((c=a%b)!=0)
{
a=b;
b=c;
}
cout<<"最大公约数"<<b<<endl;

int d=m;
while(d%n!=0)
{
d+=m;
}
cout<<"最小公倍数"<<d<<endl;
第3个回答  2011-11-16
#include"stdio.h"

void main(){
int m,n,m0,n0,r=1;
printf("m,n=");
scanf("%d%d",&m,&n);
m0=m,n0=n;
while (r){
r=m0%n0;
m0=n0;
n0=r;
}
printf("最大公约数:%d\n",m0);
printf("最小公约数:%d\n",m*n/m0);
} 赞同
0| 评论
分享到:
相似回答