写一个C程序:输入两个正整数M和N,求其最大公约数和最小公倍数?_百度知...
发布网友
发布时间:2024-09-29 10:06
我来回答
共1个回答
热心网友
时间:2024-09-29 18:40
#include
int
gcd(int
x,int
y);
int
gdd(int
x,int
y);
int
gdd1(int
x,int
y);
int
gdd2(int
x,int
y);
void
main()
{
int
a,b;
printf("请输入两个整数A和B:");
scanf("%d%d",&a,&b);
if(a>b)
{
printf("最大公约数是:%d\n",gcd(a,b));
printf("最小公倍数是:%d\n",gdd(a,b));
printf("最小公倍数是:%d\n",gdd1(a,b));
printf("最小公倍数是:%d\n",gdd2(a,b));
}
else
{
printf("最大公约数是:%d\n",gcd(b,a));
printf("最小公倍数是:%d\n",gdd(b,a));
printf("最小公倍数是:%d\n",gdd1(b,a));
printf("最小公倍数是:%d\n",gdd2(b,a));
}
}
int
gcd(int
x,int
y)//最大公约数
{
int
i,sum=1;
for(i=1;i<=y;i++)
{
if(x%i==0&&y%i==0)
{
x/=i;
y/=i;
sum*=i;
i=1;
}
}
return(sum);
}
int
gdd(int
x,int
y)//最小公倍数法1
{
int
i;
i=x;
while(i%x!=0||i%y!=0)
{
i++;
}
return(i);
}
int
gdd1(int
x,int
y)//最小公倍数法2
{
int
i=y;
while(y%x!=0)
{
y+=i;
}
return(y);
}
int
gdd2(int
x,int
y)//最小公倍数法3
{
int
i,sum;
i=gcd(x,y);
sum=x/i*y;
return(sum);
}
我用了3个函数来求最小公倍数,你编译的时候用1个就可以了。