为了账号安全,请及时绑定邮箱和手机立即绑定

求教老师解答

不能被2到m-1整除的数,则被除数必然是素数 素数自然不会满足m%n=0这个条件 所以自然会有m==n,因为在执行最后一次n++时 出现了n==m而达到循环上限跳出循环 那么if(m==n)这个条件不是多余的吗 为什么去掉这个条件之后运行结果不对

正在回答

3 回答

直接输出m的话 输出的就是外循环了 也就是2到50之间的数,当n==m的时候 m才是素数。所以要加一个if(m==n)

0 回复 有任何疑惑可以回复我~

哪里有 m==n了? 而且你想的有些许的问题,你怎么知道进入循环的就是一定是个素数?

 m%n是在求余数,余数为零就是被整除了啊,

也就是 如果 m=10,n=2,那么m%n就是=0  那么就不在计算 10%3是不是=0了。

因为10已经可以被2整除 自然就不是素数所以直接判断下一个数 11 是不是素数了。 

0 回复 有任何疑惑可以回复我~
#1

堕天使008

代码就是为了判断 50个数里哪些是素数, 你要一开始就确定哪个是素数了,那这个代码也就没用了。
2015-07-20 回复 有任何疑惑可以回复我~

当m=4时,n=2就break了,然而4不是素数~举举例子就能明白

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926258    人
  • 解答问题       20798    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

求教老师解答

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信