发布网友
共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;
}