郭兰
2020-12-18 15:35
即使删掉n<m,程序也能正常运行。而且,依据素数的条件,n与m同时自增的情况下不应该一直相等吗
n<m有意义。
n<m的意义在于规定了for循环跳出的条件。
程序也能运行成功是因为:
for循环里有一个if语句,只有满足了if语句里的条件时,才会执行。换言之,满足不了则不执行,而是执行n<m,继续判断if语句里的条件。之后n加一。继续执n<m等等。
如果把n<m删去,就变成了for(n=2;;n++),一般的话它因该是一个死循环,但是这个for循环下是一个if语句,当n<m时,满足条件的是像4,6,8,9,10这些有别的因数的数.
当n>=m,即n>=50时,m除50外永远不可能整除n,所以就不会执行if语句;
我猜想计算机自动跳出了,去判断n==m.
有的软件版本也许不能够跳出,严谨的话就加上。
n与m没有同时自增。
m增加一,下面for循环一次。下面for循环时n不止增加了一次。
不是吧
C语言入门
926019 学习 · 20793 问题
相似问题