Python PrimePy 模块

2025年3月17日 | 阅读 12 分钟

我们在学校的时候都学过质数,不用担心,如果我们忘了它们。质数基本上是那些只能被 1 或其本身整除的自然数,质数的另一个定义是大于 1 且除了数字本身或 1 之外没有其他完整可除因数的自然数。除了 '2' 之外,所有质数都是奇数,'2' 是唯一的偶数质数。

除了 2 和 3 之外,所有质数都可以用以下两种形式之一表示

(i) 6a + 1

(ii) 6a - 1

在上述表达式中,'a' 是一个自然数。

我们可能都听说过,通过编程语言处理数字非常容易,这是因为大多数编程语言都提供了我们可以用来对整数、自然数和其他类型等各种数字进行分类和处理的包。在程序中使用这些编程语言包可以非常轻松地处理数字、对数字进行分类和使用数字。与其他编程语言一样,Python 也提供了多个包,我们可以在 Python 程序中使用这些包来处理和使用数字。其中一些包是 Python 自带的,而另一些则需要我们在使用它们时进行安装。PrimePy,Python 的一个模块,就是我们上面提到的一个 Python 包。使用 PrimePy 模块,我们可以在 Python 程序中进行许多关于质数的操作,例如查找数字的质因数等。因此,在本教程中,我们将学习 PrimePy 模块,并了解如何使用它及其函数在 Python 程序中处理质数和其他数字。

Python PrimePy 模块介绍

PrimePy 是一个 Python 包或模块,提供了多个函数,我们可以使用它们来计算与质数直接或间接相关的多个操作。该模块最大的优点是,使用该模块,所有关于质数的操作都可以以更少的时间完成。由于质数没有因数,因此有时很难处理它们。在这种情况下,PrimePy 模块变得非常重要,因为它提供了我们可以用来轻松执行所有这些关于质数的操作的函数。

安装 PrimePy 模块

正如我们在介绍部分已经提到的,有些 Python 模块并不包含在 Python 源代码包中。PrimePy 就是这样一个不自带的包,因此如果我们想使用这个 Python 模块,我们必须首先在我们的设备上安装这个模块。有多种安装方法可供我们选择,但在我们选择任何一种方法之前,我们应该尝试找出哪种方法对我们来说最简单。因此,在本教程的这一部分,我们通过使用 pip 安装程序方法在我们的系统中安装了 PrimePy 模块。使用 pip 安装程序方法安装 PrimePy 模块是最简单的方法,我们只需要在终端 shell 中输入以下 pip 命令即可安装该模块。

在我们输入上述 pip 命令后,我们只需按“回车键”,PrimePy 模块的安装就会开始。现在,我们只需等待一段时间,直到该模块的所有依赖项成功安装。

Python PrimePy Module

正如我们所见,PrimePy 模块已成功安装在我们的设备上,现在我们可以在 Python 程序中导入该模块,以使用该模块的函数来处理质数。

Python PrimePy 模块的实现

我们可以在 Python 程序中使用 PrimePy 模块来执行许多涉及质数直接或间接操作的函数。将 PrimePy 模块导入程序后,我们可以使用该模块的函数来执行有关质数的所需任务。

我们可以使用 PrimePy 模块的函数执行以下几项任务:

1) 检查质数

2) 返回 'n' 个质数

3) 返回前 'n' 个质数

4) 两个数字之间的质数等等

在本节的示例程序中,我们将使用 PrimePy 模块的函数来执行这些任务,从而了解 PrimePy 模块的实现。

实现 1:检查给定自然数是否为质数的函数

我们可以使用 PrimePy 模块来确定给定数字是否为质数。PrimePy 模块提供了 `check()` 函数,我们可以使用它来检查数字是否为质数。以下是在 Python 程序中使用 `check()` 函数的语法。

其中 `num` = 程序中给定的自然数

通过使用以下示例程序中的此函数,我们可以理解 PrimePy 模块的 `check()` 函数的实现。

示例 1:请看下面的 Python 程序,我们在其中找出给定数字是否为质数。

输出

Enter first natural number: 88
Enter second natural number: 673
Is the first natural number which is entered by the user in the input is prime?  False
Is the second number entered by user is prime?  True

正如我们所见,输出以 true 和 false 的形式打印,表明用户输入的数字是否为质数。这就是我们如何使用 PrimePy 模块的 `check()` 函数编写任何 Python 程序来检查程序中给定的数字是否为质数。

实现 2:打印给定自然数的所有质因数

使用 PrimePy 模块的函数,我们可以轻松地在程序中打印给定自然数的所有质因数。PrimePy 模块提供了 `factors()` 函数,我们可以在任何示例程序中使用它来打印用户输入或程序中给定的数字的所有质因数。以下是在 Python 程序中使用 `factors()` 函数的语法。

其中 `num` = 程序中给定的自然数

通过使用以下示例程序中的此函数,我们可以理解 PrimePy 模块的 `factors()` 函数在打印自然输入数字的所有质因数方面的实现。

示例 2:请看下面的程序,我们在其中找出并打印了作为结果给出的用户输入数字的所有质因数。

输出

Enter first natural number: 243
Enter second natural number: 679
All prime factors of the first number entered by user:  [3, 3, 3, 3, 3]
All prime factors of the second number entered by user:  [7, 97]

正如我们所见,用户输入的两个数字的所有质因数都已在输出中打印出来,这就是我们如何知道任何给定数字的所有质因数。

实现 3:打印数字的最小或第一个质因数

PrimePy 模块的此实现与该模块的先前实现非常相似。这两个实现之间唯一的区别是,我们只打印数字的第一个或最小质因数,而之前我们打印的是给定数字的所有质因数。PrimePy 模块提供了 `factor()` 函数,我们可以使用它来打印任何给定数字的最小质因数。以下是在 Python 程序中使用 `factor()` 函数的语法。

其中 `num` = 程序中给定的自然数

通过使用以下示例程序中的此函数,我们可以理解 PrimePy 模块的 `factor()` 函数在打印数字的第一个质因数方面的实现。

示例 3:请看下面的程序,我们在其中使用了 `factor()` 函数来打印给定的输入数字的最小或第一个质因数。

输出

Enter first natural number: 73
Enter second natural number: 279
The lowest prime factor of the first number entered by user:  73
The first prime factor of the second number entered by user:  3

正如我们所见,两个输入数字的最小或第一个质因数已在输出中打印出来,这就是我们如何使用 PrimePy 模块的 `factor()` 函数在任何 Python 程序中打印任何给定自然数的最小质因数。

实现 4:小于或等于给定自然数的质数

假设我们有一个给定的数字,我们需要找出小于或等于该给定数字的质数有多少个。如果手动计算,这是一个非常繁琐且耗时的任务,这时我们可以利用 PrimePy 模块的优势。PrimePy 模块提供了一个选项,我们可以通过该选项打印用户给定的给定数字的所有质数。对于这项任务,PrimePy 模块提供了 `upto()` 函数,我们可以将其与任何自然数一起使用,以打印小于或等于给定数字的质数。以下是在 Python 程序中使用 `factor()` 函数的语法。(注意:原文此处应为 `upto()` 函数的语法,但描述为 `factor()`,已修正为 `upto()`)

其中 `num` = 程序中给定的自然数

通过使用以下示例程序中的此函数,我们可以理解 PrimePy 模块的 `upto()` 函数在打印用户给定的给定数字的所有质数方面的实现。

示例 4:请看下面的程序,我们在其中使用了 `upto()` 函数来打印用户在 `input()` 中输入的给定数字的所有质数。

输出

Enter first natural number: 15
Enter second natural number: 18
Following are all prime numbers that are either less than or equal to 15 as given by the user :  [2, 3, 5, 7, 11, 13]
Following are all prime numbers that are either less than or equal to 18 as given by the user :  [2, 3, 5, 7, 11, 13, 17]

正如我们所见,用户输入的给定数字小于或等于的质数已全部打印在输出中。这就是我们如何使用 `upto()` 函数来打印任何给定自然数的所有质数。

实现 5:打印前 'n' 个质数

PrimePy 模块的此实现与该模块的先前实现相似,因为在这两个实现中,我们都根据给定的数字打印某些质数。特别就这一实现部分而言,我们将打印前 'n' 个(其中 n 是一个自然数)质数,而 'n' 将是程序中给定的数字。PrimePy 模块提供了 `first()` 函数,我们可以使用它在输出中打印前 'n' 个质数。以下是在 Python 程序中使用 `first()` 函数的语法。

其中 `num` = 程序中给定的自然数

通过使用以下示例程序中的此函数,我们可以理解 PrimePy 模块的 `first()` 函数在打印前 'n' 个质因数方面的实现。(注意:原文此处描述为“质因数”,但函数是打印“质数”,已修正为“质数”)

示例 5:请看下面的程序,我们在其中使用了 `first()` 函数来打印用户输入的给定数字的前 'n' 个质数。

输出

The number of first prime numbers you want to print: 7
These are first 7 prime numbers as the number entered by the user:  [2, 3, 5, 7, 11, 13, 17]

正如我们所见,用户输入的数字 (num) 前面的质数已打印在输出中,这就是我们如何打印任何前面的 'num' 个质数。

实现 6:获取存在于任意两个给定输入数字之间的所有质数

PrimePy 模块的此实现部分也与该模块的 `upto()` 函数的实现非常相似。唯一的区别是,在这里,我们将找到任意两个数字之间的质数,而在之前,我们是找到小于或等于给定数字的质数(或 1 和给定数字之间的质数)。为了执行在任意两个用户输入的自然数之间查找所有质数的任务,PrimePy 模块提供了 `between()` 函数。以下是使用此 `between()` 函数查找任意两个给定数字之间的所有质数的语法。

输出

Enter first natural number: 5
Enter second natural number: 41
Enter third natural number: 79
These are all prime numbers which are present between first and second number given by you:  [5, 7, 11, 13, 17, 19, 23, 29, 31, 37]
These are all prime numbers which are present between the second and third number given by you:  [41, 43, 47, 53, 59, 61, 67, 71, 73]

正如我们所见,用户输入的两个给定自然数之间的所有质数已在输出中打印出来,这就是我们如何使用 PrimePy 模块的 `between()` 函数来查找和打印任意两个给定数字之间的所有质数。