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日

悬赏问题

  • ¥66 换电脑后应用程序报错
  • ¥50 array数据同步问题
  • ¥15 pic16F877a单片机的外部触发中断程序仿真失效
  • ¥15 Matlab插值拟合差分微分规划图论
  • ¥15 keil5 target not created
  • ¥15 C/C++数据与算法请教
  • ¥15 怎么找志同道合的伙伴
  • ¥20 如何让程序ab.eXe自已删除干净硬盘里的本文件自己的ab.eXe文件
  • ¥50 爬虫预算充足,跪巨佬
  • ¥15 滑块验证码拖动问题悬赏