您的位置:

Python PrimePy 模块

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

除了 2 和 3 之外,所有的质数都可以用下面给出的两种形式中的任何一种来表示:

(i) 6a + 1

(二) 6a - 1

在上面给出的表达式中,“a”是一个自然数。

我们可能都听说过,通过编程语言处理数字非常容易,这是因为大多数编程语言都为我们提供了包,我们可以使用这些包来分类和处理所有类型的数字,例如整数、自然和其他类型。在程序中使用这些编程语言包使得处理数字、对数字进行分类以及处理数字变得非常容易。像所有其他编程语言一样,Python 也为我们提供了多个包,我们可以在 Python 程序中使用它们来处理和处理数字。其中一些包内置于源代码 Python 中,有些包需要在我们必须使用它们时安装。Python 的模块 PrimePy 就是我们上面谈到的这样的 Python 包之一。利用 Python 程序中的质数模块,我们可以对质数进行运算,比如求一个数的质数因子等。因此,我们将在本教程中学习质数模块,并了解如何在 Python 程序中使用它及其函数来处理质数和其他数字。

Python 质数模块介绍

PrimePy 是一个 Python 包或模块,它提供了多个函数,我们可以使用这些函数来计算与质数直接或间接相关的多个运算。这个模块最大的优点是使用这个模块,所有关于质数的功能都可以在更短的时间内完成。因为质数没有任何因素,这就是为什么有时使用它们会变得非常困难。在这种情况下,质数模变得非常重要,因为它提供了一些函数,我们可以用这些函数轻松地对质数进行所有这些运算。

安装原始模块

正如我们在介绍部分已经说过的,一些 Python 模块没有内置在 Python 源代码包中。primepy 就是这样一个没有内置的包,因此如果我们想使用 Python 的这个模块,我们必须首先在我们的设备中安装这个模块。有多种安装方法可以用来在我们的机器上安装 primepy 模块,但是在我们选择这些方法之前,我们应该试着找出哪一种对我们来说最容易和最简单。因此,在本教程的这一部分,我们已经使用 pip 安装程序安装方法在我们的系统中安装了 primepy 模块。使用 pip installer 方法安装 primepy 模块是最简单和最容易的方法,我们只需在终端 Shell 中编写以下 pip 命令来安装该模块:


pip install primePy

一旦我们在系统的命令提示终端中编写了上面给出的 pip 命令,我们只需要按下“回车”键,primepy 模块的安装就开始了。现在,我们只需要等待一段时间,直到成功安装该模块的所有依赖项。

我们可以看到,质数模块已经成功安装在我们的设备中,现在我们可以在 Python 程序中导入这个模块,使用这个模块的功能来处理质数。

Python 中质数模块的实现

我们可以使用 Python 程序中的质数模块来执行许多功能,包括质数的直接或间接参与。将质数模块导入程序后,我们可以使用该模块的功能对质数执行所需的任务。

我们可以使用质数模块的功能来执行以下几个功能:

1) 检查质数

2) 返回质数的n个数

3) 返回前n个质数

4) 介于两个数和许多其他数之间的质数

我们将在本节的示例程序中使用 primepy 模块的功能来执行这些任务,这就是我们如何理解 primepy 模块的实现。

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

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


>> prime.check(num)

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

通过在下面的示例程序中使用 check()函数,我们可以理解 primepy 模块的 check()函数的实现:

示例 1: 看看下面的 Python 程序,我们可以从中找出给定的数字是否是质数:


# Importing prime library from the Primepy module
from primePy import primes as pms
# Taking two natural numbers as user input
num1 = int(input("Enter first natural number: "))
num2 = int(input("Enter second natural number: "))
# Checking If user input numbers are prime
res1 = pms.check(num1)
res2 = pms.check(num2)
# Printing result in the output
print("Is the first natural number which is entered by user in input is prime? ", res1)
print("Is the second number entered by user is prime? ", res2)

输出:

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

如我们所见,输出以真和假的形式打印,说明用户输入的数字是否是质数。这就是我们如何使用 primepy 模块的 check()函数编写任何 Python 程序来检查程序中给定的数字是否是 prime。

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

利用质数模块的功能,我们可以很容易地打印出程序中任意给定自然数输出中的所有质数因子。PrimePy 模块为我们提供了 factors()函数,我们可以在任何示例程序中使用该函数来打印给定用户输入数字或程序中给定数字的所有 prime factors。以下是在 Python 程序中使用 factors()函数的语法:


>> prime.factors(num)

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

我们可以理解 primepy 模块的 factors()函数的实现,通过在下面的示例程序中使用该函数来打印自然输入数的所有 prime factors:

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


# Importing prime library from the Primepy module
from primePy import primes as pms
# Taking two natural numbers as user input
num1 = int(input("Enter first natural number: "))
num2 = int(input("Enter second natural number: "))
# Finding all prime factors of user input numbers
res1 = pms.factors(num1)
res2 = pms.factors(num2)
# Printing result of prime factors in the output
print("All prime factors of the first number entered by user: ", res1)
print("All prime factors of the second number entered by user: ", res2)

输出:

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 模块的这种实现与本模块的前一种实现非常相似。这两种实现的唯一区别是,我们将只打印一个数字的第一个或最低质因数,而以前,我们打印给定数字的所有质因数。质数模块为我们提供了因子(),我们可以用它来打印任何给定数字的最低质数因子。以下是在 Python 程序中使用 factor()函数的语法:


>> prime.factor(num)

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

我们可以理解 primepy 模块的 factor()函数的实现,通过在下面的示例程序中使用这个函数来打印一个数的第一个 prime factor:

例 3: 看看下面的程序,我们使用了 factor()函数来打印给定输入数字的最低或第一个质因数:


# Importing prime library from the Primepy module
from primePy import primes as pms
# Taking two natural numbers as user input
num1 = int(input("Enter first natural number: "))
num2 = int(input("Enter second natural number: "))
# Finding lowest prime factor from the user input numbers
res1 = pms.factor(num1)
res2 = pms.factor(num2)
# Printing result of the lowest prime factor in the output
print("The lowest prime factor of the first number entered by user: ", res1)
print("The first prime factor of the second number entered by user: ", res2)

输出:

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

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

实现 4:给定自然数的质数:

假设我们有一个给定的数,我们必须找出有多少质数小于或等于给定的数。如果手动计算,这是一项非常繁忙和耗时的任务,这就是我们可以利用 primepy 模块的地方。primepy 模块为我们提供了一个选项,在这个选项中,我们可以打印用户给定数字之前的所有质数。对于这个任务,质数模块为我们提供了 upto()函数,我们可以用它来打印任意自然数的质数。以下是在 Python 程序中使用 factor()函数的语法:


>> prime.upto(num)

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

我们可以理解质数模块的 upto()函数的实现,通过在下面的示例程序中使用该函数,用户可以打印给定数量的质数:

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


# Importing prime library from the Primepy module
from primePy import primes as pms
# Taking two natural numbers as user input
num1 = int(input("Enter first natural number: "))
num2 = int(input("Enter second natural number: "))
# Finding total prime number upto user input numbers
res1 = pms.upto(num1)
res2 = pms.upto(num2)
# Printing result of prime factors in the output
print("Following are all prime numbers that are either less than or equal to", num1, "as given by the user: ", res1)
print("Following are all prime numbers that are either less than or equal to", num2, "as given by the user: ", res2)

输出:

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 程序中使用第一个()函数的语法:


>> prime.first(num)

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

我们可以理解 primepy 模块的 first()函数的实现,通过在下面的示例程序中使用该函数来打印第一个“n”个 prime factors:

例 5: 看看下面的程序,我们使用了 first()函数来打印用户给定输入数的前‘n’个质因数:


# Importing prime library from the Primepy module
from primePy import primes as pms
# Taking a natural number as user input
num1 = int(input("The number of first prime numbers you want to print: "))
# Finding total first prime numbers according to user input number
res1 = pms.first(num1)
# Printing result of all first prime numbers in the output
print("These are first", num1, "prime numbers as the number entered by user: ", res1)

输出:

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 和给定数字之间的质数)。为了执行找出任意两个用户输入自然数之间存在的所有质数的任务,质数模块为我们提供了 between()函数。以下是使用 between()函数查找两个给定数字之间的所有质数的语法:


>> primes.between(num1, num2)

# Importing prime library from the Primepy module
from primePy import primes as pms
# Taking three natural numbers as user input
num1 = int(input("Enter first natural number: "))
num2 = int(input("Enter second natural number: "))
num3 = int(input("Enter third natural number: "))
# Getting all prime numbers which are between the two input numbers
res1 = pms.between(num1, num2)
res2 = pms.between(num2, num3)
# Printing resultant prime numbers in the output
print("These are all prime numbers which are present between first and second number given by you: ", res1)
print("These are the prime numbers which are present between the second and third number given by you: ", res2)

输出:

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()函数找出并打印任意两个给定数之间的所有质数。