使用 gmpy2 产生错误的质数生成器

Prime number generator using gmpy2 producing error

提问人:Nasrat Takoor 提问时间:11/19/2020 更新时间:12/27/2021 访问量:964

问:

我正在尝试在 Jupyter Notebooks 中测试一个使用 gmpy2 生成质数的函数,但我得到以下输出。

import gmpy2
def solution(i):
    n = 2
    while True:
        yield n
        n = str(gmpy2.next_prime(n))

for i in solution(1):
    print(i)
    input()
2

3

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-14-e0db74781d33> in <module>
      6         n = str(gmpy2.next_prime(n))
      7 
----> 8 for i in solution(1):
      9     print(i)
     10     input()

<ipython-input-14-e0db74781d33> in solution(i)
      4     while True:
      5         yield n
----> 6         n = str(gmpy2.next_prime(n))
      7 
      8 for i in solution(1):

TypeError: next_prime() requires 'mpz' argument

为什么该函数成功输出序列中的前两个数字(2 和 3),但随后产生错误?什么意思?mpz

蟒蛇 GMPY

评论

0赞 Lakshan Costa 11/19/2020
之前有一个同样的问题,我想它会对你有所帮助——stackoverflow.com/questions/13326673/......

答:

-2赞 Brahim Bendali 11/19/2020 #1
import gmpy2
def solution():
    n = 2
    while True:
        yield n
        n = str(gmpy2.next_prime(n))

while True:
    print(solution())

试试这个方法

评论

0赞 Nasrat Takoor 11/19/2020
这不会打印任何内容
1赞 heressy 12/27/2021 #2

在您将 n 更改为字符串。这就是为什么它产生 2 和 3,其中 2 是整数,3 是字符串,但需要整数。n = str(gmpy2.next_prime(n))gmpy2.next_prime(n)