请教一道c语言题目 输入两个正整数m和n,求其最大公约数(GCD)和最小公...

发布网友

我来回答

2个回答

热心网友

错误我下面已经指出,并修改了,你看一下注释就明白了
#include<stdio.h>
int main(void)
{
int m,n,g,l,i,j,GCD,LCM;
printf("Input two integers: ");
scanf("%d%d",&m,&n);
GCD=1;
LCM=m*n;

for(i=1;i<=m && i<=n;i++){ //最大公约数不会大于m和n的。
if(m%i==0 && n%i==0) //这里是 %取余操作,如果==0 表示i是 m n的因子。
{ //加上大括号
g=i;
if(g>GCD)
GCD=g;
}
}
for(j=1;j<=m*n;j++){
if(j%m==0 && j%n==0) //这里也是 % 表示 m 与n 是j的因子。
{ //加上大括号
l=j;
if(l<LCM)
LCM=l;
}
}
printf("LCM is %d, GCD is %d",LCM,GCD);
return 0;
}

热心网友

公约数不是这样求得!

#include<stdio.h>
int main(void)
{
int m,n,i,GCD,LCM;
printf("Input two integers: ");
scanf("%d",&m);
scanf("%d",&n);

for(i=1;i<=m;i++)
{
if(m%i==0&&n%i==0)
GCD=i;
}
LCM=(m*n)/GCD;
printf("LCM is %d, GCD is %d",LCM,GCD);
return 0;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com