[英]Can someone explain this prime list generator for me?
這顯然是一個非常快速的素數列表生成器( 將所有素數列出在N以下的最快方法 ),但是我無法理解其中的某些部分,主要是因為語法。
def rwh_primes1(n):
""" Returns a list of primes < n """
sieve = [True] * (n/2)
for i in xrange(3,int(n**0.5)+1,2):
if sieve[i/2]:
sieve[i*i/2::i] = [False] * ((n-i*i-1)/(2*i)+1)
return [2] + [2*i+1 for i in xrange(1,n/2) if sieve[i]]
為什么將sieve
定義為[True]
(布爾值)乘以整數?
if sieve[i/2]
是什么意思?
sieve[i*i/2::i]
意味着什么,尤其是::i
部分?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.