当前位置: 首页 > news >正文

编写一个程序,输出1到100的所有质数(Python版)

编写一个程序,输出1到100的所有质数

     以下是一个用 Python 编写的程序,用于输出 1 到 100 的所有质数:
def is_prime(n):
    # 检查 n 是否为质数
    if n <= 1:  # 如果 n 小于等于 1,则不是质数
        return False
    # 遍历从 2 到 n 的平方根的所有整数
    for i in range(2, int(n**0.5) + 1):
        # 如果 n 能被 i 整除,则 n 不是质数
        if n % i == 0:
            return False
    # 如果没有找到任何能整除 n 的数,则 n 是质数
    return True

def prime_numbers_between_1_and_100():
    # 初始化一个空列表,用于存放质数
    primes = []
    # 遍历 1 到 100 的所有整数
    for num in range(1, 101):
        # 检查 num 是否为质数
        if is_prime(num):
            # 如果是质数,则将其添加到 primes 列表中
            primes.append(num)
    # 返回所有找到的质数
    return primes

# 调用函数并输出 1 到 100 的所有质数
print(prime_numbers_between_1_and_100())

遍历从 2 到 n 的平方根的所有整数
for i in range(2, int(n**0.5) + 1):

;为什么找质数要这样写?

在判断一个数 ( n ) 是否为质数时,我们只需要检查从 2 到 ( \sqrt{n} ) 的整数。这是因为:

因数对: 如果 ( n ) 可以被一个大于 ( \sqrt{n} ) 的数 ( a ) 整除,那么必定存在一个小于 ( \sqrt{n} ) 的数 ( b ),使得 ( n = a \times b )。也就是说,如果 ( n ) 是合数(非质数),那么它一定可以被某个小于等于其平方根的数整除。因此,检查平方根以内的整数就足够了。

效率: 通过只检查到 ( \sqrt{n} ),我们大大减少了需要进行的除法运算次数,提高了算法的效率。比如,检查 1000 是否为质数时,只需要检查到 31(即 ( \sqrt{1000} \approx 31.62 )),而不是检查到 999。

避免冗余工作: 如果 ( n ) 不是质数,那么它的因数会形成成对的组合:例如,对于数字 36,它可以被 2 和 18 整除(( 2 \times 18 = 36 )),在这对因数中,2 小于或等于 6(其平方根),而 18 大于 6。因此,只需检查小于等于 6 的数即可。

因此,使用
for i in range(2, int(n0.5) + 1)😗*
是一种既有效又简洁的方法来判断 ( n ) 是否为质数。

相关文章:

  • NLP学习记录十一:位置编码
  • 【和鲸社区获奖作品】内容平台数据分析报告
  • Git快速入门
  • MacBook 终端中使用 vim命令
  • 洛谷————P11559 【MX-X7-T0】[LSOT-3] 嗯欧哎
  • STM32G431RBT6——(2)浅析Cortex-M4内核
  • gimp使用教程
  • Ollama download DeepSeek Local Install
  • 网络变压器的主要电性参数与测试方法(2)
  • 阿里云物联网获取设备属性api接口:QueryDevicePropertyData
  • 基于反激电路的电池充放电均衡控制
  • 解决linux mobaxterm unable to open connection to comx 串口正常连接,但终端无法输入的问题
  • 机试准备第4天
  • Pytorch使用手册—使用TACOTRON2进行文本到语音转换(专题二十四)
  • Android Studio 新版本Gradle通过JitPack发布Maven仓库示例
  • unity lua属性绑定刷新
  • 【愚公系列】《鸿蒙原生应用开发从零基础到多实战》004-TypeScript 中的泛型
  • 【计算机网络】传输层协议(UDP TCP)
  • 如何用python画一棵分形树
  • java后端开发day23--面向对象进阶(四)--抽象类、接口、内部类
  • 网站换模板有影响吗/app拉新佣金排行榜
  • 毕业设计代做网站多少钱/seo标题优化关键词怎么选
  • 网站怎么做用密码/长春网站关键词推广
  • 企业信息的网站/推广关键词
  • 做百度还是阿里网站好/网店代运营可靠吗
  • 轻松做网站/网络推广员的工作内容和步骤