为什么当len(素数)增加到9时这不会停止, 我也试过使用计数器,但这也不起作用。在这种情况下,它会一直运行,直到它检查到素数为100,直到找到前10个素数。
prime = [2]
odd_list = [x for x in range(100) if x % 2 != 0 and x > 2]
count = 0
while len(prime) < 10:
for z in odd_list:
for y in range(2, z):
if z % y == 0: # is not prime
break
else:
prime.append(z)
count += 1
print 'count = ', count
print 'length of prime =', len(prime)
print prime
答案 0 :(得分:0)
您需要检查内部循环中的素数数量:
prime = [2]
odd_list = [x for x in range(100) if x % 2 != 0 and x > 2]
count = 0
for z in odd_list:
for y in range(2, z):
if z % y == 0: # is not prime
break
else:
prime.append(z)
count += 1
if len(prime) >= 10:
break
print 'count = ', count
print 'length of prime =', len(prime)
print prime
在外部while
循环的每次交互中,您运行整个for
循环:
while len(prime) < 10:
for z in odd_list:
...
所以在第一次while
迭代之后,所有素数都已经找到,只有这样你才会停止while
循环。