You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现输入整数以内质数输出的求助(含输入验证代码)

高效质数判断代码整合方案

你提到的平方根优化确实是判断质数的高效方法,下面直接给你整合好输入验证与质数判断的完整代码,再拆解关键逻辑:

import math

while True:
    x_input = input("Please enter an integer:  ")
    try:
        x = int(x_input)
    except ValueError:
        print("Please enter a valid integer: ")
        continue
    break

# 质数判断逻辑
def is_prime(n):
    # 小于2的数不是质数
    if n < 2:
        return False
    # 2是唯一的偶质数
    if n == 2:
        return True
    # 偶数(除2外)直接排除
    if n % 2 == 0:
        return False
    # 计算平方根,只需要检查到sqrt(n)即可
    sqrt_n = math.isqrt(n)
    # 从3开始,步长为2(只检查奇数)
    for i in range(3, sqrt_n + 1, 2):
        if n % i == 0:
            return False
    return True

# 输出结果
if is_prime(x):
    print(f"{x} 是质数")
else:
    print(f"{x} 不是质数")

关键逻辑说明:

  • 平方根优化:一个数若有大于其平方根的因数,必然对应一个小于平方根的因数,所以只需检查到sqrt(n)即可,大幅减少循环次数
  • 奇偶性过滤:除了2,所有偶数都不是质数,直接排除偶数后,后续只检查奇数,进一步提升效率
  • math.isqrt():Python 3.8+提供的整数平方根函数,返回不大于输入值的最大整数,避免浮点数精度问题

内容的提问来源于stack exchange,提问作者Juj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 16:25:37