生成大数字范围内的质数(数字> 10位数字)

我正在尝试生成大数(10位及以上)范围内的素数。但是似乎无论我使用哪个库,都要花无穷的时间来生成它们。

我在R中的代码

library(numbers)
Primes(1000000000,9999999999)

我在Python中的代码

[i for i in primerange(1000000000,9999999999)]

是否有更好的库可以快速生成这些数字?

speedlee 回答:生成大数字范围内的质数(数字> 10位数字)

@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
本文链接:https://www.f2er.com/3042667.html

大家都在问