m = range(1, 2000000, 2)
sum1 = 2
for x in xrange(1, 2000000, 2):
for y in m:
if x != y:
if x%y == 0:
m.remove(x)
if all(x%y != 0):
sum1 += x
Run Code Online (Sandbox Code Playgroud)
这就是我写的.这是一个问题,试图添加所有的素数以下200万.我的问题出在all()语句中.我想要发生的是检查x是否是素数; 只有当每个x%y给出余数时才是这样.
另外,如果我使用a,我可以使用语句(break?)来停止循环,如果y> x/3,就像这样:
m = range(1, 2000000, 2)
sum1 = 2
for x in xrange(1, 2000000, 2):
for y in m:
if y > x/3:
break
else:
if x != y:
if x%y == 0:
m.remove(x)
if all(x%y != 0):
sum1 += x
Run Code Online (Sandbox Code Playgroud)