python判断是否为素数

发布时间 - 2026-01-09 00:00:00    点击率:
素数是只有1和它本身两个正因数的数;判断时先排除小于2的数,2是唯一偶素数,对n≥3只需试除到√n。

判断一个数是否为素数,核心是看它是否只有 1 和它本身两个正因数。最直接的方法是试除法:从 2 开始,检查到 √n(含)之间是否有能整除 n 的数。如果没有,就是素数。

基础实现(处理常见情况)

需要特别注意边界情况:小于 2 的数(如 0、1、负数)都不是素数;2 是最小的素数且是唯一的偶素数。

  • 若 n
  • 若 n == 2 → 返回 True
  • 若 n 是大于 2 的偶数 → 返回 False
  • 对奇数,只需检查 3 到 √n 之间的奇数即可

推荐写法(简洁高效)

以下函数兼顾可读性与效率:

def is_prime(n):
    if n < 2:
        return False
    if n == 2:
        return True
    if n % 2 == 0:
        return False
    i = 3
    while i * i <= n:
        if n % i == 0:
            return False
        i += 2
    return True

i * i 替代 i 可避免浮点误差和类型转换,更安全。

小技巧:批量判断时可预处理

如果需频繁判断多个数(比如 1~1000 内),用埃氏筛法一次性生成布尔数组会更快:

# 生成 [0, n] 范围内是否为素数的列表
def sieve(n):
    is_prime_arr = [True] * (n + 1)
    is_prime_arr[0] = is_prime_arr[1] = False
    for i in range(2, int(n**0.5) + 1):
        if is_prime_arr[i]:
            for j in range(i*i, n+1, i):
                is_prime_arr[j] = False
    return is_prime_arr

使用示例:is_prime_arr = sieve(100); print(is_prime_arr[97]) # True

注意事项

  • Python 中整数无溢出问题,但大数(如 >10⁹)用试除法会变慢,此时建议用 Miller-Rabin 等概率算法
  • 输入应为整数,若传入浮点数(如 5.0),需先 int() 或加类型检查
  • 负数、0、1 均不是素数,这是数学定义,不要遗漏


# python 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  制作公司内部网站有哪些,内网如何建网站?  5种Android数据存储方式汇总  Android仿QQ列表左滑删除操作  JavaScript如何实现路由_前端路由原理是什么  Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  Python3.6正式版新特性预览  大同网页,大同瑞慈医院官网?  如何在七牛云存储上搭建网站并设置自定义域名?  Android okhttputils现在进度显示实例代码  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  焦点电影公司作品,电影焦点结局是什么?  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  如何在IIS中配置站点IP、端口及主机头?  android nfc常用标签读取总结  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  JavaScript如何实现倒计时_时间函数如何精确控制  如何用5美元大硬盘VPS安全高效搭建个人网站?  java ZXing生成二维码及条码实例分享  清除minerd进程的简单方法  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  Laravel如何实现用户密码重置功能?(完整流程代码)  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  高端智能建站公司优选:品牌定制与SEO优化一站式服务  如何在阿里云香港服务器快速搭建网站?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  php 三元运算符实例详细介绍  WEB开发之注册页面验证码倒计时代码的实现  Laravel如何生成URL和重定向?(路由助手函数)  php json中文编码为null的解决办法  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  ,网页ppt怎么弄成自己的ppt?  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  C#如何调用原生C++ COM对象详解  免费网站制作appp,免费制作app哪个平台好?  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  Laravel怎么清理缓存_Laravel optimize clear命令详解  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  米侠浏览器网页背景异常怎么办 米侠显示修复  如何快速搭建二级域名独立网站?