提问人:Nasrat Takoor 提问时间:11/19/2020 更新时间:12/27/2021 访问量:964
使用 gmpy2 产生错误的质数生成器
Prime number generator using gmpy2 producing error
问:
我正在尝试在 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
答:
-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)
评论