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

n<m,那么怎么得到素数?

比如13是素数,代入程序:

m=13,n<m,那么n只能循环到12就跳出循环了。

我又试着把条件改成n<=m,输出的结果是一样的。

可是还是有问题,比如:

m=12,n=12,不是素数,可是12满足所有条件,m%n=0跳出循环,m==n,输出结果!

看明白,请各位指教,谢谢,学习了!

正在回答

2 回答

我觉得因该n<m中的m是m++(先取值,后自增一)中自增的那个值。

举个例子当进行for循环时,先进行for第一级此时m取值为2,实际上经过"m++"变量m已经变为3,此后运行for循环次级n为2满足n(2)<m(3),但是在运行过程中m还是2,所以满足m%n==0跳出循环,且m==n值都为2,输出。

简单来说n<m中的m是自增之后的,其它m是取值m

我是这样理解的,不知道对不对

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

问题1:(理解for的执行过程4.8,只有当前循环可以正常结束,表达式3才能执行)

对于13来说,13%12!=0,满足当前循环n<m,没有中途break,所以n++,n从12变为13。

如果改成n<=m,那么在n=13时,循环中已经满足break要求,循环中途退出,循环未完成不参与n++,所以输出依然为13。

问题2:所以对于12来说,12%2==0,满足要求break,n到2就停止循环了。

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

weixin_慕设计3536944

那第一次循环n=2,m=2,第二个for里面的代码是否执行一次,还是直接跳出循环
2021-09-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

n<m,那么怎么得到素数?

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