Leslie will lucky 2023-01-09 15:02 采纳率: 66.7%
浏览 16
已结题

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

img

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

  • 写回答

3条回答 默认 最新

  • ShowMeAI 2023-01-09 15:08
    关注

    对于一个数 num,如果它是一个质数,那么它的因数一定是小于等于 num/2 的,因此只需要遍历小于等于 num/2 的数即可。

    例如,对于数字 15,它的因数有 1、3、5、15,因此我们只需要判断 2 到 8 之间的数是否为 15 的因数即可。

    当然,也可以将遍历的范围设置为 (2,num),但这样会增加一些不必要的运算,例如对于 15,就会多判断大于8因数。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月14日
  • 已采纳回答 4月6日
  • 创建了问题 1月9日