2016-10-15 5 views
-2

다음과 같은 기능에 문제가 있습니다. 파이썬을 처음 접했기 때문에 나는 그것이 무엇을하는지 이해할 수 없습니다. 제발 도와주세요. 미리 감사드립니다.다음 세그먼트는 무엇을합니까? - Python

def foo(limit): 
    a = [True] * limit 
    a[0] = a[1] = False 
    for (i,b) in enumerate(a): 
     if b: 
     yield i 
     for n in xrange(i*i,limit,i): 
      a[n] = False 
+6

'yield i'에 들여 쓰기가 잘못되어 구문 오류가 발생합니다. 그 부분을 제외하고는 - 정확히 어느 부분을 이해하지 못합니까? (전체 코드에 대한 설명은 조금 많습니다.) – UnholySheep

+2

[Sieve of Eratosthenes] (https://en.m.wikipedia.org/wiki/Sieve_of_Eratosthenes)를 사용하는 소수 생성기라고 생각합니다. – furas

+0

@furas It eratosthenes의 체와 유사하지만 약간 다른 것처럼 보입니다. 마지막 for-loop를 보면 i²에서 시작하는 숫자 만 교차합니다 (일반 체에서 나) – jadsq

답변

0

이것은 2 진 인덱스 트리의 예입니다.

관련 문제