可能重複一個數是素數:
Fastest way to list all primes below N in python
Checking if a number is a prime number in Python發現,如果使用Python
我工作的項目歐拉問題10,該條規定如下:
Find the sum of all the primes below two million.
這是我的程序:
numbers = []
sum = 0
range_number = 2000000
#Appends all numbers in range
for i in range(2, range_number):
numbers.append(i)
#i is every entry in numbers, n is the multiples of numbers[i] starting at one
#value of numbers[i] after i. This is the Sieve of Eratosthenes.
for i in range(0, len(numbers)-1):
if numbers[i] != None:
for n in range(i + numbers[i], len(numbers)-1, numbers[i]):
numbers[n] = None
#Adds all the numbers that are not None
for i in numbers:
if i != None:
sum += i
print(sum)
我的程序將範圍下面的每個數字的所有倍數更改爲無,這應該消除所有組合並只留下質數。
當我爲range_number插入一個簡單的數字(如10)時,我得到了錯誤的答案。不要只發布自己的程序,請告訴我我哪裏出錯了。 使用平方根提到的其他帖子,但我沒有真正明白。
謝謝。
沒有辦法,這是你的實際代碼;你不能將一個整數賦給'range',然後嘗試調用'range()'。你沒有得到錯誤的答案,你會得到一個異常告訴你整數不可調用。 – geoffspear
你說得對,我只是爲了清晰而添加了變量。謝謝,我會解決它。 – LonelyWebCrawler
該帖子中的函數is_prime(a)是不同的,它檢查每個小於輸入的數字,如果它是一個因子,並且對於我的程序來說太長。 – LonelyWebCrawler