素数判定优化

素数判定优化

除了2,3,素数一定都在6k左右,即6k-1,6k+1.

证明:

6k6k+3均为3的倍数,6k+26k+4均为2的倍数,故素数一定在6k-1,6k+1之间。

优化:

for (int i = 2;i <= n/i;i++) {
  if (n % i == 0) ...
}

优化为

for (int i = 5;i <= n/i;i += 6) {  // 5是第一个6k-1,因此i就是6k-1,i+2就是6k+1.因为只有(6k+-1)才可能是素数,只需要判断它们就行。
  if (n % i == 0 || n % (i + 2) == 0) ...
}
posted @   Uzhia  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示