我正在尝试遍历素数列表,但我想在达到某个限制时停止。
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
语句似乎是更好的选择,但我想不出正确的语法。
只需在循环体中添加一个检查:
for prime in primelst:
if prime > limit:
break
# ...
更新:我最初建议使用enumerate
,但我看到你实际上想在质数大于limit
时停止循环>.
我是一名优秀的程序员,十分优秀!