我正在尝试遍历素数列表,但是当我达到某个限制时我想停止。
def primetest(number,primelst):
limit = int(round(sqrt(number),0)+1)
while prime in primelst < limit:
if (number % prime) == 0:
return False
return True
作为FOR语句,这有效:
def primetest(number,primelst):
limit = int(round(sqrt(number),0)+1)
for prime in primelst:
if (number % prime) == 0:
return False
return True
但这很慢,因为它遍历所有素数,我希望迭代在达到限制时停止。所以while
语句似乎是更好的选择,但我无法弄清楚正确的语法。
答案 0 :(得分:5)
只需在循环体中添加一个检查:
for prime in primelst:
if prime > limit:
break
# ...
更新:我最初建议使用enumerate
,但我发现当素数大于limit
时,您确实想要停止循环。
答案 1 :(得分:1)
如果你坚持使用while,有这种方法可以循环你的情况:
;