课程
/后端开发
/C
/C语言入门
此代码中,if (m%n==0)
break;
}
if(m==n)
printf("%d",m);
return 0;
这几步什么意思,不理解~
2015-08-31
源自:C语言入门 4-14
正在回答
判断m除以n后的余数是否为0,是就执行break;再判断m是否等同n,是就打印m到屏幕。
MJonas 提问者
Virture 回复 MJonas 提问者
刚看了你的疑问,使用求余和除法是不一样的,如8%2=0,8%4=0而8/2=4,8/4=2;m%n=0,表示m能整除n,
if(m%n==0)这句,如果m整除n,这行后面的break;
if(m%n==0)
break; /*##外层循环一次,内层循环多次中有符合m整除n的数,并且n是内层循环 被整除的最小的数,也就是说 n是m的最小被除数 , 比如8%2==0就跳出内循环了,不会执行8%4或8%8这一步了;*/
后面的
if(m==n)/*筛选出有可能是素数的数后,再次筛选,想一下:n是m最小的被除数,m,n都大于1,当m=n时,意思就是只能自己整除自己了,也就是素数了*/
当m=2时执行子循环,因为n从2开始所以n<m不成立,直接跳出子for循环,因为m=n=2,所以输出2.
当m=3时,执行子循环,因为3%2!=0.所以继续执行子循环,因为有个n++.所以n变成了3.当n=3时因为n<m不成立,所以跳出子循环,又因为m=n=3,所以输出3.
当m=4时,执行子循环,因为4%2==0,直接执行breeak,跳出子循环,又因为m=4 n=2 m!=n。所以不输出m=4.然后执行m=5的时候的情况以此类推。。。。。
我认为是这样的。
羽丶
阿西ol 回复 羽丶
如果都不是那
举报
C语言入门视频教程,带你进入编程世界的必修课-C语言
2 回答那个year%4啥意思。。。看不懂
1 回答不懂意思
1 回答下面不懂意思
3 回答不懂什么意思
1 回答我这不懂啥意思
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号