我试图遍历一个素数列表,但是当我达到一定限度时我想停止.
def primetest(number,primelst):
limit = int(round(sqrt(number),0)+1)
while prime in primelst < limit:
if (number % prime) == 0:
return False
return True
Run Code Online (Sandbox Code Playgroud)
作为FOR语句,这有效:
def primetest(number,primelst):
limit = int(round(sqrt(number),0)+1)
for prime in primelst:
if (number % prime) == 0:
return False
return True
Run Code Online (Sandbox Code Playgroud)
但这很慢,因为它遍历所有素数,我希望迭代在达到极限时停止.所以while声明似乎是一个更好的选择,但我无法弄清楚正确的语法.
只需在循环体中添加一个检查:
for prime in primelst:
if prime > limit:
break
# ...
Run Code Online (Sandbox Code Playgroud)
更新:我最初建议使用enumerate,但我发现你真的想在素数大于时停止循环limit.
| 归档时间: |
|
| 查看次数: |
47 次 |
| 最近记录: |