如何使用库函数在Python快速获得质数?
库函数总是使我们的代码容易实现,因此在这里我们将讨论Python的一些库函数来处理素数。 SymPy是一个Python模块,其中包含一些非常酷的与质数相关的库函数。以下是这些功能的列表:
- isprime(n):测试n是否为质数(真)(否)(假)。
- primerange(a,b):生成范围为[a,b)的所有素数的列表。
- randprime(a,b):返回范围为[a,b)的随机素数。
- primepi(n):返回小于或等于n的素数个数。
- prime(nth):返回第n个素数,素数索引为prime(1)=2。第n个素数大约为n * log(n),并且永远不能大于2 ** n。
- prevprime(n):返回小于n的上一个素数。
- nextprime(n):返回比n大的下一个质数。
- sieve.primerange(a,b):生成[a,b)范围内的所有素数,实现为Eratosthenes的动态增长筛。
例子:
Python3
# Library functions for prime
import sympy
# Output : True
print(sympy.isprime(5))
# Output : [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]
print(list(sympy.primerange(0, 100)))
print(sympy.randprime(0, 100)) # Output : 83
print(sympy.randprime(0, 100)) # Output : 41
print(sympy.prime(3)) # Output : 5
print(sympy.prevprime(50)) # Output : 47
print(sympy.nextprime(50)) # Output : 53
# Output : [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]
print list(sympy.sieve.primerange(0, 100))