1
이것은 매우 빠른 프라임 목록 생성기 ( Fastest way to list all primes below 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
부분을 의미합니까?