浦发ae白 2017酒店列表:关于C语言

来源:百度文库 编辑:高校问答 时间:2024/03/29 06:39:42
这是一道关于C语言的题~~
题目是"输入两个正整数m,n,求其最大公约数和最小公倍数"
哪位大哥会啊~~
急!!!!!!!!!!!!!!!!!!!!!

#include <stdio.h>
long int abc(int a,int b);
void main()
{
int a,b,gys,gbs;
printf("输入整数a:");
scanf("%d",&a);
printf("输入整数b:");
scanf("%d",&b);
gys=abc(a,b);
gbs=a*b/gys;
cout<<"最大公约数:"<<gys<<endl<<"最小公倍数:"<<gbs<<endl;
}
int abc(int a,int b)
{
int temp,df;
if (a < b)
{
temp=a;a=b;b=temp;
}
if (a % b ==0)
{
df=b;
return df;
}
else
{
abc(b,a % b);
}
}

最小公倍数等于这两数的积再除以它们的最大公约数。而最大公约数当然就是两数的积除以最小公倍数了,所以两者只要求出一个,另一个也就可以很简单地算出来了。

设置变量从i=0开始自增,没+1就处以m和n,第一次能同时整除m和n,i的值就是最小公倍数。 最大公约数会了吗?不会跟帖