C语言输入两个正整数m和n,求其最大公约数和最小公倍数。麻烦哪位仁兄帮忙解答哈

[复制链接]
查看11 | 回复1 | 2010-12-29 16:33:09 | 显示全部楼层 |阅读模式
main()
{long m,n,i=1,j,s;
scanf("%ld,%ld",&m,&n);
for(;i=n) j=m;
else j=n;
for(;!(j%m==0&&j%n==0);j++);
printf("s=%ld,j=%ld\n",s,j);
}
就是下面这个J为最小公倍数是怎么循环得来的 麻烦详细解说一下 还有就是if(m>=n) j=m;
else j=n;
for(;!(j%m==0&&j%n==0);j++);
printf("s=%ld,j=%ld\n",s,j);
}
这个还是详细说明一下。谢谢

回复

使用道具 举报

千问 | 2010-12-29 16:33:09 | 显示全部楼层
最小公倍数就是既可被m整除也可被n整除的数。if (m>=n ) j=m; else j=n;从m和n中较大的那个数开始找起,比它小的数当然不用考虑了。当然,其实你从j=1开始找起也没问题。for ( ;!(j%m==0&&j%n==0); j++); 如果j整除m为0,而且整除n也为0,那么答案找到了,循环停止。否则j取下一个数继续分析。printf这句不用分析了吧。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行