我正在尝试生成大数(10位及以上)范围内的素数。但是似乎无论我使用哪个库,都要花无穷的时间来生成它们。
我在R中的代码
library(numbers)
Primes(1000000000,9999999999)
我在Python中的代码
[i for i in primerange(1000000000,9999999999)]
是否有更好的库可以快速生成这些数字?
@JohanC做得很好。您真的一次需要所有素数吗?在此范围内生成“下一个”素数很快。如果您一次只能使用1个或几个,则可以
>>> p = nextprime(1000000000)
>>> while 1:
... print(p) # or do what you need to do
... p = nextprime(p)
这显示
1000000007
1000000009
1000000021
...
如果您不希望它们是连续的(但不介意重复值的可能性很小),则可以使用
while 1:
p = nextprime(randint(1000000000,9999999999))
# do something