c语言问题

如何编一个程序输出两个数的最大公约数和最小公倍数?尽量把程序和思路都写出来。

第1个回答  2007-06-30
我就告诉你思路,不会全写出来,你自己思考吧
我写的很简单的
m,n是输入的2个数
while(n!=0)
{
k=m%n;
m=n;
n=k;
}
最大公约数就是M
最小公倍数是M*N%最大公约数
第2个回答  2007-06-25
用循环,思路清晰

main()
{
int a,b,i;
scanf("%d %d",&a,&b);
if(a<b)
{
i=a;a=b;b=i;
}
for(i=b;i>0;i--)
{
if(a%i==0&&b%i==0)
{
printf("\nzui da gong yue shu shi %d",i);
break;
}
}
for(i=a;i<=a*b;i++)
{
if(i%a==0&&i%b==0)
{
printf("\nzui xiao gong bei shu shi %d",i);
break;
}
}
}本回答被提问者采纳
第3个回答  2007-06-25
用递归作:
//////////////////////////////////////////

#include <stdio.h>
#include <conio.h>

int gys(int a,int b)
{
if (b==0) return (a); else return (b,a>b?a%b:b%a);
}

void main()
{ int a,b;
scanf("%d %d",&a,&b);
printf("%d\n",gys(a,b));//输出a与b的最大公约数
printf("%d\n",a*b/gys(a,b));//输出a与b的最小公倍数,(最小公倍数=两数乘积/两数最大公约数
getch();
}
相似回答