求100以内素数的相关问题

图片说明

此程序运行正常
前面for里说明j<i

为何后面的if里又说就j>=i 这不矛盾吗

c++

2个回答

for循环的j<i是终止条件,如果该条件不成立就跳出循环,所以如果正常跳出循环应该是j==i,而循环里存在break,也就是j小于i的时候也可能跳出循环。
后面大于等于的判断是为了将这两种情况区分,因为正常结束代表为素数,从break跳出代表为合数。

lowskill
lowskill 回复JonathanYan: 谢谢了,以后也多帮帮我
3 个月之前 回复
JonathanYan
JonathanYan 回复lowskill: 如果遇到合数就会从break跳出循环,那时候还是j<i的情况
3 个月之前 回复
lowskill
lowskill 回复JonathanYan: 这道题看j是不会大于i的吧
3 个月之前 回复
lowskill
lowskill 回复JonathanYan: 保证采纳
3 个月之前 回复
JonathanYan
JonathanYan 回复lowskill: 问题解决给我采纳
3 个月之前 回复
JonathanYan
JonathanYan 回复lowskill: 只要结束的时候这个表达式成立也可能,不成立也可能,就需要判断。
3 个月之前 回复
lowskill
lowskill 谢谢
3 个月之前 回复
lowskill
lowskill j>i的判断有必要吗,什么情况下会出现这种情况
3 个月之前 回复

for循环中判断该数的约数,找到最小的约数就跳出for循环。大于1的最小约数是自身的是素数哪里有问题。这边j>=i活着j==i都是成立的,for里没有j=i啊

lowskill
lowskill for里面不是规定j<i吗
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问