@@ -820,14 +820,14 @@ which incur interpreter overhead.
820820 pass
821821
822822 def sieve(n):
823- "Primes less than n"
824- # sieve(30) --> 2 3 5 7 11 13 17 19 23 29
825- data = bytearray([1]) * n
826- data[:2] = 0, 0
827- limit = math.isqrt(n) + 1
828- for p in compress(range(limit), data):
829- data[p* p : n : p] = bytearray(len(range(p* p, n, p)))
830- return iter_index(data, 1 )
823+ "Primes less than n"
824+ # sieve(30) --> 2 3 5 7 11 13 17 19 23 29
825+ data = bytearray([1]) * n
826+ data[:2] = 0, 0
827+ limit = math.isqrt(n) + 1
828+ for p in compress(range(limit), data):
829+ data[p+ p : n : p] = bytearray(len(range(p+ p, n, p)))
830+ return compress(count(), data )
831831
832832 def flatten(list_of_lists):
833833 "Flatten one level of nesting"
@@ -1191,8 +1191,8 @@ which incur interpreter overhead.
11911191
11921192 >>> list (sieve(30 ))
11931193 [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
1194- >>> small_primes = [2 , 3 , 5 , 7 , 11 , 13 , 17 , 19 , 23 , 29 , 31 , 37 , 41 , 43 , 47 , 53 , 59 , 61 , 67 , 71 , 73 , 79 , 83 , 89 , 97 ]
1195- >>> all (list (sieve(n)) == [p for p in small_primes if p < n] for n in range (101 ))
1194+ >>> small_primes = [2 , 3 , 5 , 7 , 11 , 13 , 17 , 19 , 23 , 29 , 31 , 37 , 41 , 43 , 47 , 53 , 59 ]
1195+ >>> all (list (sieve(n)) == [p for p in small_primes if p < n] for n in range (60 ))
11961196 True
11971197 >>> len (list (sieve(100 )))
11981198 25
0 commit comments