5
私は素数を生成するアルゴリズムを探していました。私はロバート・ウィリアム・ハンクスによって次のものが見つかった。それは他のアルゴリズムよりも効率的で優れていますが、その背後にある数学を理解することはできません。素数生成器の説明?
def primes(n):
""" Returns a list of primes < n """
lis = [True] * n
for i in range(3,int(n**0.5)+1,2):
if lis[i]:
lis[i*i::2*i]=[False]*int((n-i*i-1)/(2*i)+1)
return [2] + [i for i in range(3,n,2) if lis[i]]
True
の値の配列と、最終的な素数アレイとの間の関係は何ですか?
シラバス・エラトステネスを使用しているようです。 – ForceBru
[この回答]のコード(http://stackoverflow.com/questions/2068372/fastest-way-to-list-all-primes-below-n-in-python/3035188#3035188)は、基本的にわずかに最適化されていますエラトステネスのふるい。それはPython 2のコードだということに注意してください。Python 3で使用するには、いくつか調整が必要です。FWIW、私は[この回答](http://stackoverflow.com/a/38743446/4014959)にRWHのコードのPython 3バージョンを持っています。 。 –
'n = 6'でウォークスルーし、ループを通るときに' lis'と 'i'の値を書き留めます。 –