@@ -818,7 +818,7 @@ which incur interpreter overhead.
818
818
data = bytearray([1]) * n
819
819
data[:2] = 0, 0
820
820
limit = math.isqrt(n) + 1
821
- for p in compress(count( ), islice( data, limit) ):
821
+ for p in compress(range(limit ), data):
822
822
data[p+p : n : p] = bytearray(len(range(p+p, n, p)))
823
823
return compress(count(), data)
824
824
@@ -1168,6 +1168,9 @@ which incur interpreter overhead.
1168
1168
1169
1169
>>> list (sieve(30 ))
1170
1170
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
1171
+ >>> small_primes = [2 , 3 , 5 , 7 , 11 , 13 , 17 , 19 , 23 , 29 , 31 , 37 , 41 , 43 , 47 , 53 , 59 ]
1172
+ >>> all (list (sieve(n)) == [p for p in small_primes if p < n] for n in range (60 ))
1173
+ True
1171
1174
>>> len (list (sieve(100 )))
1172
1175
25
1173
1176
>>> len (list (sieve(1_000 )))
@@ -1178,6 +1181,9 @@ which incur interpreter overhead.
1178
1181
9592
1179
1182
>>> len (list (sieve(1_000_000 )))
1180
1183
78498
1184
+ >>> carmichael = {561 , 1105 , 1729 , 2465 , 2821 , 6601 , 8911 } # https://oeis.org/A002997
1185
+ >>> set (sieve(10_000 )).isdisjoint(carmichael)
1186
+ True
1181
1187
1182
1188
>>> list (flatten([(' a' , ' b' ), (), (' c' , ' d' , ' e' ), (' f' ,), (' g' , ' h' , ' i' )]))
1183
1189
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
0 commit comments