gpt4 book ai didi

python - 迭代直到函数返回 True 用户定义的次数

转载 作者:太空宇宙 更新时间:2023-11-03 13:47:35 25 4
gpt4 key购买 nike

我编写了一个函数 isprime(n),如果数字是素数则返回 True,否则返回 false。我能够将函数循环定义的次数;但我无法弄清楚如何迭代,直到它找到 x 个素数。我觉得我对 For 和 While 循环有很好的理解,但对如何将 bool 返回值集成到循环中感到困惑。这是我当前的代码和错误:

错误结果:

input:100
Traceback (most recent call last):
File "euler7.py", line 25, in <module>
primeList += 1
TypeError: 'int' object is not iterable

还有代码:

def isprime(n):
x = 2
while x < sqrt(n):
if n % x == 0:
return False
else:
x += 1
return True

userinput = int(raw_input('input:'))

primeList = []
primesFound = 0

while primesFound != userinput:
i = 2
if isprime(i):
primeList.append(i)
primeList += 1
i += 1
else:
i += 1

编辑(包括更新和运行的代码):

from math import sqrt
def isprime(n):
x = 2
while x < (sqrt(n) + 1):
if n % x == 0:
return False
else:
x += 1
return True

userinput = int(raw_input('input:'))
primeList = []
primeList.append(2)

i = 2
while len(primeList) != userinput:
if isprime(i):
primeList.append(i)
i += 1
else:
i += 1

print 'result:', primeList[-1]

最佳答案

这一行:

primeList += 1

应该是:

primesFound += 1

关于python - 迭代直到函数返回 True 用户定义的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16474199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com