快速素数列表生成器
描述:
这是使用Sieve算法的快速质数列表生成器。此功能返回质数列表
- def primes(n):
- if n==2: return [2]
- elif n<2: return []
- s=range(3,n+1,2)
- mroot = n ** 0.5
- half=(n+1)/2-1
- i=0
- m=3
- while m <= mroot:
- if s[i]:
- j=(m*m-3)/2
- s[j]=0
- while j<half:
- s[j]=0
- j+=m
- i=i+1
- m=2*i+3
- return [2]+[x for x in s if x]
- print primes(13)
- print primes(3000)
来自Activestate的Python食谱区(
这里
)。
---------------------------------------------
[2,3,5,7,11,13]
[2、3、5、7、11、13、17、19、23、29、37、37、41、43、47、53、59、61、67、67、71、73,73,
79、83、89、97、101、103、107、109、113、127、131、137、139、139、149、151、157、163
,167、173、179、181、191、193、197、199、211、223、227、229、229、233、239、241、251
,257、263、269、271、277、281、283、293、307、311、313、317、331、337、347、349
,353、359、367、373、379、383、389、397、401、409、419、421、431、431、433、439、443
,449、457、461、463、467、479、487、491、499、503、509、521、523、541、547、547、557
,563,569,571,577,587,593,599,601,607,613,617,619,619,631,641,641,643,647
,653、659、661、673、677、683、691、701、709、719、727、733、739、743、743、751、757
,761、769、773、787、797、809、811、821、823、827、829、839、853、857、857、859、863
,877、881、883、887、907、911、919、929、937、941、947、947、953、967、971、977、977、983
,991、997、1009、1013、1019、1021、1031、1033、1039、1049、1051、1061、1063、10
69、1087、1091、1093、1097、1103、1109、1117、1123、1129、1151、1153、1163、1171
,1181、1187、1193、1201、1213、1217、1223、1229、1231、1237、1249、1259、1277,1277,
1279、1283、1289、1291、1297、1301、1303、1307、1319、1321、1327、1361、1367、13
73、1381、1399、1409、1423、1427、1429、1433、1439、1447、1451、1453、1459、1471
,1481、1483、1487、1489、1493、1499、1511、1523、1531、1543、1549、1549、1553、1559,
1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1619,1621,1627,1637,1637,16
57、1663、1667、1669、1693、1697、1699、1709、1721、1723、1733、1741、1747、1753
,1759、1777、1783、1787、1789、1801、1811、1823、1831、1847、1861、1867、1871,1871年,1871年,
1873,1877,1879,1889,1901,1907,1913,1931,1933,1933,1949,1951,1951,1973,1979,19,19,19
87、1993、1997、1999、2003、2011、2017、2027、2029、2039、2053、2063、2069、2081
,2083、2087、2089、2099、2111、2113、2129、2131、2137、2141、2143、2143、2153、2161,
2179、2203、2207、2213、2221、2237、2239、2243、2251、2267、2269、2269、2273、2281、22
87、2293、2297、2309、2311、2333、2339、2341、2347、2351、2357、2371、2377、2381
,2383、2389、2393、2399、2411、2417、2423、2437、2441、2447、2447、2459、2467、2473,
2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2591,2593,2609,26
17、2621、2633、2647、2657、2659、2663、2671、2677、2683、2687、2689、2689、2693、2699
,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2777,2789,2791,
2797,2801,2803,2819,2833,2837,2843,2843,2851,2857,2861,2879,2879,2887,2897,29
03,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999]