C语言判断素数的疑问 if (i == val) 这个括号里的恒等不是永远不成立的么?

2025-01-07 09:36:26
推荐回答(3个)
回答1:

不是的,你的循环里面有个 ++i, 所以执行最后一次的时候,它已经加到val的大小了,所以也就正好是素数 比如判断5的时候
for (i=2; i {
if (val%i == 0)
break;
}
当i =4 时,条件成立执行循环体,执行完后,++i 变为5 ,然后再判断条件,条件不成立,退出,
下面的if语句 不就正好成立了, 也就正好是素数

回答2:

这个我来回答。
肯定是成立的。
for语句里面,i自加到val(i == val)时for语句就停止了,这个时候i就不会继续运行for后面大括号里面的语言了。
运行到if (i == val)时,它就成立了。

回答3:

如果 val 是素数
for (i=2; i
会运行到 i==val 是 i