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