ls = []
total = 0
for i in range(0,2000000):
ls.append(i)
for i in range(2,2000000):
for x in range(2,int(float(2000000/i)+0.5)):
ls[int(float(i*x))] = 0
ls[1] = 0
for j in range(0,2000000):
total += ls[j]
print total
这段代码给了我错误的答案。它包含大量不是素数的数字。它包含25个以上的数字,而不是素数。我试图找到所有在python下的200万以下的素数总和
你正在做大量'float'到'int'的转换。这些都受到一些舍入误差。如果可能的话,我会尝试尽可能使用'int'。 – 2014-11-04 16:47:47