这个模块包含几个有用的函数来处理素数。从primpy导入primes
prime的Python项目详细描述
模块primepy中的primes
这个模块包含几个有用的函数来处理素数。例如,相当快地提取正整数的所有素因子(具有多重性)。遵循所有函数及其运行时间的列表。
开始
下载primes.py文件并将其放在安装python的同一目录中。或者,只需运行命令
>>>pip install primePy
安装软件包。通过pip
安装后,您可以通过
>>>from primePy import primes
然后执行可用的方法。
可用方法
导入包后,您可以运行primes.about()
。以下是所有包含方法的列表。
primes.check(n)
如果n是质数,则返回true。primes.factor(n)
返回n的最低素因子。primes.facors(n)
返回具有多重性的n的所有素因子。primes.first(n)
返回第一个n多素数。primes.upto(n)
返回所有小于或等于n的素数。primes.between(m,n)
返回m和n之间的所有素数。primes.phi(n)
返回euler的phi(n)即小于n的整数个数,它们与n没有公共因子。
演示
这个程序是在我的个人笔记本电脑上测试的,配置如下。
Processor: Intel(R) Core(TM) i3-4030U CPU @ 1.90Ghz
Installed memory(RAM): 6.00GB
System type: 64 bit Operating System, x64-based processor
Operating system: Windows 10
小数字
以下所有返回的命令将在不到1秒的时间内返回。
>>> primes.check(56156149)
False
>>> primes.check(79012338765433)
True
>>> primes.factor(7568945625)
3
>>> primes.factor(5141)
53
>>> primes.factors(252)
[2, 2, 3, 3, 7]
>>> primes.factors(44410608)
[2, 2, 2, 2, 3, 3, 11, 23, 23, 53]
>>> primes.first(7)
[2, 3, 5, 7, 11, 13, 17]
>>> primes.first(37)
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83,
89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157]
>>> primes.first(5000)
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83,
89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179,
. . . .
. . . .
48179, 48187, 48193, 48197, 48221, 48239, 48247, 48259, 48271, 48281, 48299, 48311, 48313, 48337, 48341, 48353, 48371, 48383, 48397, 48407, 48409, 48413, 48437, 48449, 48463, 48473, 48479, 48481, 48487, 48491, 48497, 48523, 48527, 48533, 48539, 48541, 48563, 48571, 48589, 48593, 48611]
最后一个命令的结果被截断。
>>> primes.upto(16)
[2, 3, 5, 7, 11, 13]
>>> primes.upto(50000)
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83,
89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179
. . .
. . .
49789, 49801, 49807, 49811, 49823, 49831, 49843, 49853, 49871, 49877, 49891, 49919,
49921, 49927, 49937, 49939, 49943, 49957, 49991, 49993, 49999]
>>> primes.between(100,200)
[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]
>>> primes.between(100000,500000)
[100003, 100019, 100043, 100049, 100057, 100069, 100103, 100109, 100129, 100151, 100153,
100169, 100183, 100189, 100193, 100207, 100213, 100237, 100267, 100271, 100279, 100291
499661, 499663, 499669, 499673, 499679, 499687, 499691, 499693, 499711, 499717, 499729, 499739, 499747, 499781, 499787, 499801, 499819, 499853, 499879, 499883, 499897, 499903, 499927, 499943, 499957, 499969, 499973, 499979]
>>> primes.phi(128)
64
>>> primes.phi(561534567567457)
483618287856960
大一点的数字
以下所有命令返回的结果小于5秒。
>>> primes.factors(2910046587320501324077792713140104371205630933992706145011)
[239, 701, 709, 1997, 1997, 3889, 5171, 5171, 6983, 10009, 4940867, 45845791, 3731292319]
>>> primes.first(10000)[9999]
104729
最后一个命令返回第10000个质数。
建议
请随时将您的建议发送到以下电子邮件地址
Author: Indrajit Jana
Email: ijana at temple dot edu