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

来源:4-14 结束语句之break语句

张小逗

2021-06-24 09:39

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

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

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

可是还是有问题,比如:

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

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

写回答 关注

2回答

  • 慕容3118422
    2021-08-16 22:55:53

    我觉得因该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

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

  • qq_慕丝3347677
    2021-06-29 11:36:28

    问题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就停止循环了。

    weixin...

    那第一次循环n=2,m=2,第二个for里面的代码是否执行一次,还是直接跳出循环

    2021-09-17 10:47:34

    共 1 条回复 >

C语言入门

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

926869 学习 · 21192 问题

查看课程

相似问题