求100-200的全部素数 其中if(i>=k+1)这个括号里面的条件为什么能确定素数

img


第9行的if括号里的条件为什么能推出素数呢? n=101时当k看成是十,i=2啊。i>=k+1不成立啊 为啥还能printf出101?

因为对于一个合数a来说,它一定有一个质因子是小于等于根号a的。

如果1到根号a都不是a的质因子,那么a就是质数

对于n=101,i可以一直增加到11才退出循环,所以i>=11,会输出101

i == k+1就可以了
说明前面那个循环全部循环了一遍,没有break过,也就是没有任何数字能整除

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^