检查素数的Python程序

2023-10-15

理解素数的概念以及如何识别它们是数学的一个重要方面。素数是只有两个不同的自然数约数的数字:1 和它本身。换句话说,如果您选择一个素数并尝试将其除以除 1 和该数字本身之外的任何其他数字,则结果总是会是分数。前几个素数是 2、3、5、7、11、13 等。

在编程领域,创建一个程序来检查素数是一项常见任务,也是理解基本计算逻辑的绝佳方法。今天,我们将深入研究如何编写一个检查数字是否为素数的 Python 程序。

Python 程序

Python 以其清晰的语法和强大的内置函数,是完成这项任务的优秀语言。下面是一个简单的 Python 程序,用于检查数字是否为素数。

1
2
3
4
5
6
7
8
9
10
11
12
13
def 检查_prime(n):
    if n <= 1:
        return False
    for i in range(2, n):
        if n % i == 0:
return False
    return True
 
num = int(input(“输入一个数字:”))
if 检查_prime(num):
    print(num, “是质数。”)
else:
    print(num, “不是素数。”)

理解代码

  1. 定义函数:第一行 def check_prime(n): 是一个名为的 Python 函数的定义检查_prime以整数 n 作为参数。
  2. 边缘情况处理: 下一行,if n <= 1:return False,处理输入数字小于或等于1的情况。根据定义,素数大于1,因此如果n小于或等于1,函数立即返回False,表示该数字是不是素数。
  3. 检查整除性:程序然后进入一个循环,从2 to n - 1。对于每次迭代,它都会检查 n 是否可以被整除i (i.e., n % i == 0)。如果是,函数返回False,表明该数不是素数。
  4. 返回真:如果该数不能被任何数整除i在这个范围内,它是一个素数。因此,返回True被执行。
  5. 用户输入和函数调用:程序要求用户输入一个数字num = int(input("Enter a number: "))。然后它使用该函数check_prime(num)检查输入数字是否为质数。
  6. Output:最后两行打印结果。如果数字是质数,则会打印“[数字]是质数”,如果没有,它将打印“[数字] 不是质数”.

优化代码

上面的代码工作得很好,但对于较大的数字来说效率不高。我们可以通过仅检查 n 平方根的整除性并在检查 2 后跳过所有偶数来优化它。以下是如何实现这些改进:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import math
 
def 检查_prime(n):
    if n <= 1:
        return False
    if n == 2:
        return True
    if n % 2 == 0:
        return False
    sqrt_n = math.isqrt(n)
    for i in range(3, sqrt_n + 1, 2):
        if n % i == 0:
return False
    return True
 
num = int(input(“输入一个数字:”))
if 检查_prime(num):
    print(num, “是质数。”)
else:
    print(num, “不是素数。”)

The math.isqrt(n)函数返回 n 的整数平方根,并且range(3, sqrt_n + 1, 2)只迭代奇数直到sqrt_n。这显着减少了必要的迭代次数,从而提高了大量的性能。

这些 Python 程序是理解和识别素数的强大工具。 Python 的美妙之处使我们能够快速准确地识别这些独特的数字,这在数论和密码学中发挥着至关重要的作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查素数的Python程序 的相关文章

随机推荐

  • 文本处理中 Awk 命令的 30 个示例

    在上一篇文章中 我们谈到了sed命令我们看到了许多在文本处理中使用它的例子 我们看到了它在这方面的优点 但它有一些局限性 有时您需要一些强大的功能 让您能够更好地控制数据处理 这是哪里awk 命令进来 awk 命令或具体的 GNU awk
  • 安装、保护、访问和配置 Linux 邮件服务器 (Postfix)

    如果您想发送或接收电子邮件 您应该有一个邮件服务器 在这篇文章中 我们将讨论 Linux 邮件服务器以及 SMTP 简单邮件传输协议 以及其他邮件相关协议 例如邮局协议 POP 和互联网消息访问协议 IMAP 的工作原理以及它们之间的关系他
  • 了解和使用 Linux Subshel​​l(实用指南)

    子shell是由shell启动的子进程 shell本质上是一个命令行解释器 它共享父 shell 的属性 但在单独的进程空间中运行 子 shell 为执行命令和运行脚本提供了隔离性和灵活性 子 shell 通常用于任务自动化 并行执行和模块
  • 加速您的 Python 代码:Numba 实用指南

    Numba 是一个开源 JIT 编译器 可以翻译以下代码的子集Python and NumPy代码转换为快速机器代码 它通过使用行业标准的 LLVM 编译器库并优化执行速度来加速数值计算 在本教程中 我们将探索如何使用 Numba 使 Py
  • Linux 正则表达式教程(Sed 和 AWK)示例

    为了成功地与Linux sed编辑和awk 命令在 shell 脚本中 您必须了解正则表达式或简称正则表达式 由于正则表达式有很多引擎 我们将使用 shell 正则表达式并了解 bash 在使用正则表达式方面的强大功能 首先 我们需要了解什
  • 10 多个在 Linux 中终止进程的示例

    在本教程中 我们将通过多个示例讨论如何终止 Linux 中的进程 在大多数情况下 就像输入 kill 命令然后输入进程 ID 通常缩写为 PID 一样简单 正如你所看到的 我们杀死了一个ID为1813的进程 如果您是 Windows 用户
  • 如何安装和配置 Squid Linux 代理服务器

    Linux代理服务器或代理服务器通常是保存访问过的网页以供以后请求的服务器 因此如果您尝试访问同一个网页或其他任何人 您将从代理服务器获取页面 这非常有用 它使网上冲浪速度更快并减少流量 这意味着成本更低 缓存服务器可以将外部流量减少至 4
  • 使用 Sed 命令进行文本替换的实际示例

    在本教程中 您将深入研究如何使用实际示例sed命令可用于文本替换 在本教程结束时 您将对以下方面有更深入的了解sed及其在文本替换中的实际应用 目录 hide 1 将 URL 中的 HTTP 更改为 HTTPS 2 用下划线替换空格 3 更
  • 数据帧过滤:在 Pandas 查询中使用正则表达式

    The 查询 方法Pandas 中允许您根据查询表达式过滤 DataFrame 行 将正则表达式 regex 的强大功能与query 方法允许更高级和灵活的查询 本教程将指导您完成使用正则表达式的过程query 熊猫中的方法 目录 hide
  • 使用 to_xml 将 Pandas DataFrame 转换为 XML 文件

    The to xml方法允许您将 DataFrame 转换为 XML 格式 在本教程中 我们将逐步完成导出Pandas使用 DataFrame 到 XML 文件to xml method 目录 hide 1 Pandas to xml 语法
  • 使用 to_csv 将 Python Pandas DataFrame 导出到 CSV 文件

    The to csv函数允许您从a写入数据PandasDataFrame 到 CSV 文件 当您需要保存 共享或导出数据以便在不同的环境或应用程序中进一步使用或分析时 这非常有用 它带有多个参数 可帮助您根据需要自定义流程 例如 您可以选择
  • 使用 Linux-PAM 增强 Linux 身份验证

    在上一篇文章中 我们讨论了Linux iptables 防火墙 还有人问认证问题 今天我们来聊聊Linux中用于身份验证的强大框架 那就是Linux PAM PAM or 可插拔的身份验证模块是位于 Linux 应用程序和 Linux 本机
  • Linux gzip 命令:综合教程

    gzip 代表 GNU zip 是基于 Unix 的系统上用于压缩和解压缩文件的流行工具 该工具不仅仅压缩单个文件 与其他工具 例如tar用于压缩目录 目录 hide 1 命令结构和选项 2 压缩和解压文件 3 了解 gzip 中使用的压缩
  • 使用 Pandas read_xml 将 XML 文件解析为 DataFrame

    The read xml函数于Pandas用于读取 XML 可扩展标记语言 文件并将其转换为 DataFrame 让我们深入研究实际示例来了解它是如何工作的 目录 hide 1 Pandas read xml 语法 2 Read from
  • Python 中的 JSON 操作和转换技术

    在本教程中 您将学习各种 JSON 处理技术 例如加载 JSON 对象 写入 排序 JSON 或解析 JSON 等 JSON 代表JavaScript Object N代表结构化数据的otation JSON 数据用于交换信息 在Pytho
  • 什么是 Linux 文件系统?简易指南

    您可能已经对 Linux 有一点了解 但您可能并不确切知道您的数据在幕后是如何处理的 因为如果你像许多其他 Linux 用户一样 你就会认为这些事情是理所当然的 但你的 Linux 文件系统可没这么无忧无虑 所以 今天我们要讨论的正是 Li
  • Python pytest 教程(您获得无错误代码的门票)

    pytest 是一个强大的 Python 测试框架 可让您轻松创建小型 简单的测试 同时可扩展以支持应用程序和库的复杂功能测试 它为您提供了一个平台 通过将测试用例编写为函数来执行 Python 测试 从而减少代码和样板代码的数量 它还可以
  • 使用 Linux curl 命令处理身份验证方法

    curl是一个用于为不同协议传输数据的命令行工具 在其广泛的功能中 最重要的功能之一是它在与服务器通信时处理不同类型的身份验证的能力 本教程深入探讨了使用的身份验证机制卷曲命令在 Linux 上 目录 hide 1 基本认证 2 Diges
  • 如何在 Fedora 34/33 上安装 ownCloud 10

    ownCloud使用 Web 界面提供数据访问 它还提供跨设备同步和共享的选项 一切都在您的控制之下 使用 ownCloud 我们可以轻松地对每个用户的文件 ACL 实施限制 ownCloud 提供桌面客户端 Windows MAC Lin
  • 检查素数的Python程序

    理解素数的概念以及如何识别它们是数学的一个重要方面 素数是只有两个不同的自然数约数的数字 1 和它本身 换句话说 如果您选择一个素数并尝试将其除以除 1 和该数字本身之外的任何其他数字 则结果总是会是分数 前几个素数是 2 3 5 7 11