
有点不太明白 为什么for遍历的值是(2,num//2+1)而不是(2,num)
因为数学基础太差了 看百度质数就是不能被1和自己整除嘛

有点不太明白 为什么for遍历的值是(2,num//2+1)而不是(2,num)
因为数学基础太差了 看百度质数就是不能被1和自己整除嘛
对于一个数 num,如果它是一个质数,那么它的因数一定是小于等于 num/2 的,因此只需要遍历小于等于 num/2 的数即可。
例如,对于数字 15,它的因数有 1、3、5、15,因此我们只需要判断 2 到 8 之间的数是否为 15 的因数即可。
当然,也可以将遍历的范围设置为 (2,num),但这样会增加一些不必要的运算,例如对于 15,就会多判断大于8因数。