Counting Primes

January 7, 2011

#(0 5761455 11078937 16252325 21336326 26355867 31324703 36252931
41146179 46009215 50847534 55662470 60454705 65228333 69985473 74726528
79451833 84163019 88862422 93547928 98222287 102886526 107540122
112184940 116818447 121443371 126062167 130670192 135270258 139864011
144449537 149028641 153600805 158165829 162725196 167279333 171827136
176369517 180906194 185436625 189961812 194481069 198996103 203507248
208013454 212514323 217011319 221504167 225991743 230475545 234954223
239429993 243902342 248370960 252834065 257294520 261751864 266206294
270655552 275101551 279545368 283984956 288422869 292856421 297285198
301711468 306137611 310558733 314977166 319391721 323804352 328215206
332620900 337024801 341426904 345826612 350221825 354615116 359006517
363395981 367783654 372168766 376549859 380930729 385307831 389682427
394055910 398425675 402793457 407159590 411523195 415885628 420243162
424603409 428958595 433311792 437663672 442014876 446362736 450708777
455052511 459394441 463733626 468072089 472408200 476741968 481074475
485405902 489736021 494062787 498388617 502712575 507036251 511354887
515673696 519991125 524309392 528624525 532936342 537247292 541555851
545864306 550170437 554476170 558778993 563082532 567382703 571680924
575978253 580275482 584570200 588863345 593155089 597445378 601735269
606022680 610308664 614594106 618878615 623159296 627440336 631717982
635997249 640275231 644550922 648825715 653099304 657371139 661643304
665911851 670180516 674447835 678714823 682979568 687242934 691504332
695766925 700028114 704286233 708543557 712799821 717055212 721310048
725563140 729813991 734065508 738315156 742564929 746813071 751060249
755305935 759550004 763794029 768035554 772276773 776516528 780756650
784994469 789230673 793467703 797703398 801937611 806169530 810401956
814633249 818864199 823092766 827320850 831548431 835773764 840000027
844224822 848450250 852673966 856895823 861116918 865335133 869555570
873772692 877989808 882206716 886422213 890636921 894850907 899064419
903275849 907487780 911698381 915907322 920117006 924324489 928532509
932738007 936943763 941147666 945351970 949555347 953758330 957958052
962158684 966358351 970556800 974755898 978951680 983147464 987343369
991538483 995733104 999926054 1004118104 1008309544 1012500258
1016690917 1020879037 1025067175 1029256469 1033444454 1037631294
1041815774 1046001482 1050186367 1054370637 1058552429 1062734476
1066916147 1071094927 1075274949 1079454128 1083631538 1087809564
1091987405 1096163370 1100339660 1104513787 1108687177 1112860305
1117034447 1121205592 1125376629 1129547281 1133717820 1137887191
1142056097 1146225390 1150393648 1154560299 1158727002 1162892823
1167057747 1171221046 1175385155 1179549444 1183711384 1187874380
1192034212 1196195238 1200356153 1204515304 1208673910 1212829795
1216987937 1221145073 1225300872 1229455037 1233609164 1237764170
1241917157 1246070670 1250224878 1254376178 1258528162 1262678524
1266827683 1270976954 1275125632 1279274172 1283421484 1287567873
1291715676 1295861693 1300005926 1304150462 1308296664 1312440578
1316583470 1320724811 1324868019 1329010956 1333151863 1337291809
1341430624 1345570079 1349708221 1353846756 1357984935 1362122305
1366257814 1370393786 1374528892 1378664634 1382799415 1386933522
1391065576 1395199789 1399331489 1403463860 1407594647 1411724086
1415855689 1419985631 1424115489 1428244053 1432371870 1436498522
1440625629 1444751745 1448877006 1453002152 1457125036 1461250000
1465374659 1469497594 1473620220 1477744125 1481866173 1485988244
1490109683 1494229934 1498349689 1502469332 1506589876 1510706235
1514824921 1518942965 1523061505 1527178351 1531294454 1535409890
1539526326 1543640517 1547756812 1551870851 1555985016 1560097442
1564208549 1568320054 1572432177 1576544661 1580654270 1584764017
1588873108 1592982840 1597091049 1601199712 1605308326 1609414491
1613521803 1617628777 1621733835 1625839726 1629945987 1634052052
1638156927 1642258972 1646361787 1650465128 1654567808 1658669200
1662770302 1666869794 1670972264 1675072419 1679170566 1683270249
1687369711 1691467151 1695565190 1699662748 1703761548 1707858902
1711955433 1716050469 1720144848 1724241897 1728336282 1732430410
1736526180 1740619156 1744713632 1748805530 1752898084 1756987393
1761078122 1765169921 1769260641 1773351175 1777442877 1781530474
1785621307 1789709560 1793798703 1797887260 1801975182 1806062390
1810149996 1814236123 1818322676 1822407623 1826489988 1830575906
1834658067 1838742792 1842825653 1846909270 1850992005 1855074218
1859156347 1863238351 1867320859 1871402335 1875482847 1879562930
1883642470 1887722398 1891800587 1895879932 1899958276 1904036638
1908114573 1912191800 1916268743 1920347116 1924422570 1928498011
1932573349 1936646486 1940721696 1944797174 1948871367 1952945594
1957018338 1961089383 1965161808 1969233350 1973304195 1977376665
1981447779 1985519033 1989588548 1993659289 1997729452 2001796366
2005864843 2009933793 2014002593 2018069377 2022137196 2026204289
2030270517 2034337796 2038404475 2042469434 2046534053 2050598713
2054662457 2058727455 2062791593 2066855115 2070918071 2074981871
2079045540 2083107257 2087170358 2091232421 2095293756 2099353852
2103414866 2107473358 2111533438 2115593696 2119654578 2123711202
2127769041 2131828079 2135887473 2139945263 2144002868 2148061201
2152118222 2156173876 2160230408 2164287399 2168343450 2172397905
2176451935 2180506650 2184561319 2188616526 2192670595 2196723874
2200777436 2204828910 2208879508 2212930015 2216982800 2221034120
2225087204 2229138005 2233188780 2237237738 2241286680 2245337711
2249386635 2253437044 2257486659 2261534669 2265582088 2269630722
2273677293 2277723942 2281770277 2285816118 2289861391 2293908247
2297955870 2301999709 2306044120 2310088597 2314134053 2318177990
2322223112 2326266900 2330308778 2334351201 2338393413 2342436031
2346478314 2350519355 2354560561 2358602447 2362642765 2366683716
2370724495 2374763504 2378804084 2382843532 2386880413 2390919906
2394959109 2398996112 2403034927 2407071577 2411110078 2415147307
2419181034 2423219093 2427255367 2431292536 2435327045 2439361501
2443396396 2447431831 2451466331 2455500451 2459534282 2463565779
2467597919 2471632122 2475665529 2479696435 2483729191 2487761399
2491793997 2495825196 2499856755 2503887935 2507918465 2511947717
2515978063 2520007177 2524038155 2528067401 2532097043 2536126664
2540155255 2544183491 2548211228 2552238285 2556266399 2560294002
2564319542 2568345835 2572372442 2576397670 2580421933 2584447929
2588472785 2592497820 2596522622 2600546330 2604571471 2608595062
2612618628 2616643294 2620665663 2624687920 2628709369 2632732626
2636754699 2640776029 2644799757 2648820585 2652840994 2656861044
2660881979 2664902170 2668922912 2672943760 2676963401 2680982125
2685000601 2689021011 2693039441 2697057353 2701075683 2705092716
2709109210 2713125397 2717143223 2721159932 2725176643 2729193507
2733210696 2737225536 2741242121 2745257057 2749272015 2753286718
2757299847 2761314795 2765327756 2769341791 2773356225 2777369850
2781383306 2785394924 2789408169 2793419860 2797431717 2801443922
2805454432 2809465484 2813477356 2817487436 2821497837 2825509231
2829520068 2833530738 2837539518 2841549369 2845558213 2849566042
2853574755 2857584531 2861594266 2865601989 2869610768 2873619181
2877625961 2881633373 2885641353 2889648502 2893654733 2897660376
2901667770 2905672946 2909678043 2913685600 2917689568 2921695146
2925699539 2929702761 2933706263 2937709465 2941713524 2945717900
2949719949 2953724092 2957726064 2961727364 2965730599 2969734593
2973737899 2977740005 2981742619 2985744869 2989743222 2993744024
2997743403 3001742385 3005740846 3009740083 3013740632 3017740443
3021739912 3025737894 3029738266 3033736354 3037734260 3041732620
3045730736 3049728863 3053726975 3057724728 3061722012 3065718156
3069714416 3073709903 3077706121 3081700773 3085694966 3089690887
3093686041 3097682212 3101677762 3105672385 3109665704 3113660777
3117654258 3121648738 3125641477 3129636165 3133628489 3137621629
3141615091 3145607391 3149600532 3153593186 3157583551 3161575400
3165568071 3169558897 3173549966 3177541505 3181531857 3185524100
3189515502 3193505484 3197494480 3201485771 3205474366 3209464223
3213453462 3217442657 3221430632 3225418712 3229406344 3233394790
3237380550 3241367601 3245353518 3249340672 3253327262 3257314501
3261302137 3265288786 3269274318 3273261676 3277246756 3281232235
3285218896 3289205184 3293189136 3297172860 3301158042 3305141278
3309125457 3313108871 3317092589 3321076365 3325059246 3329042269
3333024320 3337007745 3340990584 3344973656 3348954479 3352936965
3356918381 3360899212 3364880246 3368861514 3372843128 3376824341
3380804536 3384785252 3388764045 3392744352 3396724969 3400703302
3404683449 3408661629 3412641191 3416621174 3420600239 3424577712
3428556536 3432533925 3436512942 3440489299 3444467709 3448443650
3452420745 3456398055 3460376073 3464354329 3468330724 3472306712
3476280273 3480257644 3484232867 3488208449 3492182057 3496156616
3500132047 3504107018 3508083271 3512056531 3516031243 3520004496
3523979003 3527952545 3531925382 3535899657 3539873170 3543843428
3547815425 3551789160 3555761507 3559733867 3563706203 3567677571
3571648151 3575618333 3579587822 3583559953 3587530335 3591499540
3595471441 3599441281 3603412533 3607382383 3611353499 3615323157
3619293204 3623260438 3627230054 3631199924 3635167788 3639133977
3643101671 3647069932 3651037811 3655006291 3658974043 3662941495
3666909363 3670877228 3674842642 3678809724 3682776125 3686743894
3690708635 3694674136 3698640744 3702607660 3706572805 3710536268
3714502398 3718465031 3722428991 3726394088 3730358421 3734323031
3738287024 3742250941 3746214561 3750179004 3754141753 3758105608
3762067054 3766030492 3769992222 3773955567 3777917868 3781881979
3785842285 3789803781 3793766088 3797726848 3801688660 3805649459
3809611918 3813571463 3817534298 3821493048 3825453351 3829412874
3833371480 3837330842 3841291749 3845250279 3849209920 3853169493
3857129155 3861088365 3865047067 3869005617 3872964725 3876923182
3880881273 3884839528 3888796569 3892753631 3896710330 3900667023
3904623253 3908580398 3912536328 3916492455 3920449831 3924406577
3928362015 3932316075 3936271016 3940227600 3944182809 3948137829
3952093061 3956048108 3960003559 3963957671 3967911833 3971865657
3975818018 3979772869 3983725586 3987677658 3991630533 3995584016
3999537962 4003491500 4007444082 4011396563 4015348558 4019300356
4023253116 4027204376 4031157206 4035109071 4039061553 4043014010
4046965198 4050915644 4054865513 4058816261 4062767391 4066716906
4070666662 4074616057 4078566781 4082514143 4086464266 4090414411
4094363532 4098312828 4102261058 4106208569 4110157418 4114105592
4118054813 4122002974 4125951022 4129899008 4133846090 4137794168
4141742842 4145689672 4149636144 4153582391 4157530404 4161477423
4165424922 4169371370 4173318664 4177263600 4181209193 4185154619
4189100056 4193044604 4196989638 4200934855 4204879674 4208824586
4212770443 4216714800 4220659455 4224602910 4228546296 4232490007
4236433606 4240376079 4244320375 4248261533 4252203731 4256145702
4260088538 4264029435 4267972444 4271914404 4275855889 4279798336
4283741054 4287681725 4291624115 4295565391 4299507028 4303448321
4307390056 4311330958 4315272063 4319211240 4323150754 4327090695
4331030762 4334968402 4338908044 4342846672 4346786018 4350724843
4354664895 4358603298 4362541231 4366479091 4370416479 4374354885
4378293301 4382229441 4386167841 4390104652 4394042985 4397979640
4401917214 4405856680 4409794155 4413729598 4417666615 4421603161
4425539074 4429475043 4433411276 4437348623 4441283952 4445219168
4449154508 4453089347 4457024523 4460959654 4464894316 4468828670
4472764648 4476700204 4480634227 4484567393 4488503043 4492436637
4496370961 4500305010 4504237495 4508169982 4512105232 4516037579
4519970195 4523903230 4527836114 4531768383 4535702686 4539634423
4543566182 4547498556 4551432044 4555362969 4559296037 4563227736
4567158860 4571090463 4575022304 4578953551 4582884629 4586815162
4590746744 4594676726 4598606753 4602536966 4606465525 4610394991
4614326128 4618255759 4622186462 4626114967 4630046605 4633975177
4637903515 4641833218 4645760649 4649689027 4653617425 4657545130
4661472980 4665402571 4669331583 4673258489 4677186872 4681114478
4685041143 4688969962 4692897633 4696825272 4700752974 4704680085
4708604954 4712531567 4716457102 4720383069 4724310612 4728235406
4732159735 4736087469 4740013412 4743938990 4747863448 4751788849
4755713620 4759637539 4763562291 4767485211 4771409753 4775334045
4779259268 4783183140 4787107402 4791031373 4794955519 4798878865
4802801795 4806725050 4810648801 4814570108 4818493335 4822416627
4826340547 4830261141 4834183699 4838105284 4842026778 4845949557
4849871891 4853792933 4857712484 4861632738 4865554396 4869476140
4873398197 4877320710 4881240547 4885160559 4889083253 4893001762
4896920979 4900839106 4904759399 4908680087 4912599182 4916517476
4920436028 4924354790 4928274832 4932193437 4936113285 4940032588
4943950525 4947868493 4951787639 4955706234 4959625465 4963543783
4967462998 4971381858 4975300909 4979219024 4983136767 4987054378
4990971946 4994889301 4998805574 5002722471 5006637520 5010554960
5014470110 5018387178 5022303624 5026219253 5030135122 5034052629
5037969122 5041885543 5045800503 5049716854 5053631969 5057546366
5061462423 5065376457 5069290769 5073205746 5077121330 5081035055
5084950459 5088863944 5092777578 5096690305 5100605440 5104519777
5108433875 5112345586 5116257922 5120170863 5124083308 5127995719
5131907874 5135819544 5139731399 5143644483 5147556110 5151468645
5155380726 5159292811 5163204189 5167115026 5171027004 5174937130
5178850782 5182762996 5186672510 5190584091 5194493321 5198404164
5202314849 5206225211 5210137313 5214047230 5217957379 5221868175
5225776630 5229686323 5233597042 5237505714 5241415314 5245322837
5249233756 5253142002 5257050557 5260961805 5264871925 5268779803
5272688872 5276596849 5280505378 5284413988 5288321850 5292229390
5296138250 5300046382 5303953269 5307859925 5311767269 5315674944
5319582037 5323488639 5327394845 5331301457 5335209314 5339115710
5343021144 5346926643 5350832485 5354739174 5358644612 5362550320
5366455853 5370360074 5374265144 5378170702 5382075263 5385982546
5389885716 5393789680 5397694501 5401598454 5405503574 5409407976
5413312501 5417216671 5421122105 5425025085 5428928125 5432831532
5436734037 5440640897 5444544251 5448447658 5452350965 5456253150
5460155814 5464057758 5467959726 5471862865 5475766125 5479667176
5483568248 5487470797 5491372853 5495273179 5499174982 5503076704
5506976858 5510878694 5514778760 5518680638 5522581373 5526481146
5530382383 5534282741 5538183974 5542084305 5545987054 5549886569
5553786783 5557686566 5561586358 5565487292 5569387769 5573286648
5577186611 5581085063 5584983426 5588883018 5592781350 5596679706
5600577505 5604476347 5608374484 5612273271 5616170391 5620069915
5623968394 5627867138 5631766822 5635664337 5639561601 5643460301
5647359321 5651258195 5655155045 5659051748 5662947633 5666844872
5670742030 5674638389 5678533267 5682429700 5686326158 5690224560
5694118243 5698014938 5701910063 5705805628 5709701461 5713597011
5717491730 5721386868 5725283513 5729178556 5733075106 5736969321
5740864683 5744759174 5748653024 5752548542 5756442152 5760337394
5764230799 5768124816 5772018436 5775913631 5779807853 5783702023
5787594736 5791487516 5795379975 5799272846 5803165752 5807060071
5810952523 5814846218 5818738001 5822631216 5826525258 5830417913
5834310937 5838202713 5842094822 5845988041 5849880966 5853772785
5857663250 5861552705 5865444365 5869336157 5873227815 5877118934
5881011140 5884901378 5888791184 5892684408 5896574583 5900465913
5904353780 5908245816 5912135403 5916026919 5919917234 5923807015
5927697430 5931586178 5935478035 5939368131 5943255928 5947145983
5951034689 5954922480 5958812942 5962703763 5966591685 5970481167
5974371147 5978258385 5982148982 5986038309 5989926139 5993813707
5997701707 6001591112 6005479769 6009365743 6013253716 6017141343
6021028588 6024914861 6028801021 6032689389 6036576546 6040463341
6044348540 6048234914 6052121086 6056007464 6059893764 6063780491
6067666087 6071552635 6075437956 6079323394 6083208322 6087094531
6090979827 6094865460 6098751757 6102636809 6106521409 6110405541
6114289472 6118175226 6122057829 6125943413 6129828280 6133713388
6137596183 6141479659 6145363298 6149247138 6153132277 6157014054
6160897371 6164781160 6168665110 6172548901 6176432648 6180315380
6184199356 6188082643 6191964036 6195845766 6199728004 6203609523
6207490920 6211372694 6215254486 6219136869 6223019582 6226902319
6230785686 6234668260 6238550646 6242432137 6246314927 6250195826
6254077059 6257957345 6261837567 6265719746 6269603420 6273485050
6277365473 6281245245 6285127774 6289009165 6292889284 6296769562
6300649338 6304529282 6308409985 6312290025 6316170050 6320049621
6323929935 6327810794 6331690835 6335570325 6339448168 6343329144
6347207491 6351085095 6354965120 6358842688 6362721305 6366599769
6370477239 6374355799 6378233979 6382113153 6385991032 6389868916
6393746841 6397623582 6401500764 6405380526 6409257711 6413133756
6417012140 6420891210 6424767592 6428644955 6432521980 6436398711
6440274894 6444152207 6448029066 6451905043 6455780119 6459657410
6463533937 6467410184 6471286623 6475164008 6479038245 6482914244
6486790833 6490667738 6494543489 6498418171 6502293302 6506168042
6510041502 6513915014 6517791366 6521666970 6525540508 6529415382
6533289787 6537165767 6541039235 6544912535 6548787492 6552660645
6556533876 6560407859 6564282162 6568155757 6572027925 6575902747
6579777033 6583649161 6587522768 6591393865 6595268202 6599141715
6603012926 6606885973 6610759049 6614630559 6618502806 6622376407
6626248489 6630120035 6633991838 6637864994 6641737972 6645611122
6649482822 6653354582 6657224944 6661094017 6664964403 6668836759
6672708970 6676578635 6680449215 6684321390 6688193070 6692063263
6695932911 6699802392 6703673925 6707544624 6711415018 6715286594
6719157613 6723026646 6726897511 6730767020 6734637169 6738505673
6742374956 6746244319 6750115641 6753984187 6757853980 6761722959
6765591914 6769460211 6773329645 6777199526 6781069588 6784939225
6788807717 6792675460 6796541887 6800411210 6804279714 6808149023
6812015990 6815883077 6819750867 6823619777 6827487955 6831355758
6835222804 6839091233 6842956143 6846824324 6850690633 6854557357
6858425454 6862291414 6866159644 6870028201 6873893467 6877759414
6881626813 6885494745 6889361844 6893229604 6897096053 6900961421
6904826370 6908692258 6912557354 6916423450 6920288283 6924154303
6928018168 6931883563 6935749583 6939614171 6943478724 6947343778
6951209436 6955073631 6958937869 6962803096 6966667026 6970531282
6974395922 6978261731 6982126331 6985989123 6989853547 6993717144
6997581014 7001444158 7005307253 7009170569 7013034832 7016899075
7020762005 7024626314 7028489763 7032352557 7036212920 7040076308
7043937897 7047803941 7051665968 7055530440 7059391499 7063255295
7067116757 7070978906 7074840226 7078700843 7082562471 7086423836
7090287240 7094146731 7098011134 7101872256 7105733113 7109595419
7113456916 7117318652 7121179908 7125042251 7128903166 7132765070
7136624884 7140486410 7144345789 7148205799 7152066494 7155927422
7159787086 7163646224 7167505641 7171366148 7175226690 7179087476
7182947209 7186804403 7190663481 7194523523 7198382888 7202242708
7206104227 7209962875 7213822616 7217682053 7221540624 7225400200
7229258771 7233119208 7236978160 7240836066 7244694285 7248551796
7252410309 7256268056 7260125097 7263983286 7267840986 7271698102
7275556594 7279413074 7283270860 7287129846 7290986354 7294845199
7298701792 7302558200 7306415608 7310272753 7314130421 7317988210
7321845603 7325701816 7329558761 7333416386 7337272456 7341127515
7344983592 7348840229 7352696228 7356552334 7360408809 7364263904
7368119908 7371975897 7375829957 7379685761 7383541210 7387395899
7391251191 7395107475 7398961488 7402816695 7406671393 7410527669
7414383767 7418236728 7422091006 7425948444 7429803073 7433658160
7437511797 7441365485 7445219328 7449071038 7452926093 7456778784
7460632117 7464484795 7468338267 7472191112 7476044909 7479898996
7483753747 7487605305 7491459789 7495312664 7499166735 7503020198
7506873042 7510726909 7514579583 7518432018 7522284976 7526137888
7529990681 7533843632 7537696101 7541547735 7545398054 7549249950
7553100621 7556955421 7560807775 7564657930 7568509762 7572361500
7576213253 7580063765 7583916116 7587766865 7591617449 7595467730
7599318928 7603169491 7607021257 7610872835 7614723490 7618574418
7622425159 7626276327 7630125934 7633975415 7637824249 7641674955
7645524983 7649374736 7653223249 7657073205 7660923169 7664772661
7668622541 7672473234 7676320625 7680171447 7684021154 7687870784
7691719853 7695570486 7699419249 7703269556 7707118556 7710964646
7714815513 7718663389 7722511338 7726359737 7730208154 7734058060
7737905499 7741754113 7745602819 7749450996 7753299643 7757148383
7760995800 7764844548 7768693604 7772539954 7776386793 7780234371
7784082196 7787929729 7791775330 7795622115 7799468982 7803315577
7807163981 7811011876 7814858534 7818705063 7822551117 7826395815
7830243115 7834088016 7837934872 7841782680 7845628916 7849474329
7853320527 7857166370 7861012370 7864858013 7868702255 7872547640
7876392418 7880238189 7884082075 7887929261 7891773549 7895619169
7899465078 7903309326 7907155074 7911000636 7914846474 7918690764
7922535822 7926379826 7930224558 7934069769 7937915218 7941760362
7945604555 7949448538 7953291852 7957133721 7960978344 7964821721
7968665422 7972510440 7976354701 7980199701 7984044259 7987887875
7991731784 7995575785 7999418922 8003261123 8007105059 8010946934
8014789938 8018633286 8022475074 8026317548 8030161553 8034004520
8037848233 8041691283 8045534448 8049375909 8053216846 8057058246
8060901866 8064743150 8068585698 8072427093 8076269337 8080110221
8083948120 8087788434 8091629516 8095470398 8099311151 8103151141
8106992234 8110832946 8114675220 8118515645 8122355166 8126196024
8130034222 8133875063 8137714869 8141555996 8145396350 8149236715
8153078014 8156916222 8160758139 8164599458 8168440818 8172279413
8176119822 8179959155 8183797641 8187637385 8191477855 8195317553
8199155976 8202995187 8206835665 8210674187 8214514978 8218353312
8222192599 8226031411 8229870189 8233708341 8237546788 8241384234
8245223668 8249061764 8252900293 8256739153 8260576867 8264414491
8268251836 8272090578 8275928516 8279766273 8283604382 8287442233
8291280722 8295118094 8298955826 8302793538 8306632063 8310469963
8314307231 8318144016 8321981805 8325818985 8329655827 8333490655
8337327839 8341162978 8344999437 8348837141 8352673527 8356510763
8360347635 8364182925 8368019076 8371855557 8375690604 8379525733
8383362115 8387199117 8391034591 8394869818 8398706911 8402542796
8406378242 8410214080 8414048042 8417882001 8421718515 8425555047
8429391078 8433225587 8437059334 8440893353 8444728647 8448563259
8452398129 8456230600 8460064933 8463899526 8467734748 8471568995
8475403285 8479236919 8483069223 8486903711 8490737613 8494572843
8498406326 8502240076 8506075043 8509908654 8513741855 8517575834
8521407634 8525240576 8529073003 8532906859 8536740633 8540575125
8544408811 8548239536 8552072435 8555904439 8559738090 8563569924
8567401805 8571234690 8575069138 8578903079 8582736774 8586569321
8590400599 8594231484 8598064472 8601897284 8605730278 8609563041
8613394949 8617226619 8621057505 8624888274 8628720544 8632551864
8636382313 8640213284 8644045371 8647877949 8651709534 8655539377
8659370290 8663202357 8667032394 8670864256 8674692821 8678524343
8682353883 8686185549 8690015659 8693845397 8697676388 8701506991
8705336312 8709165960 8712994916 8716823646 8720653382 8724484632
8728314546 8732144203 8735974499 8739804926 8743633645 8747464249
8751293007 8755120710 8758950771 8762780454 8766609001 8770437851
8774265364 8778092828 8781923486 8785752940 8789581882 8793410239
8797238274 8801066938 8804896507 8808725055 8812552883 8816380092
8820209206 8824038204 8827867253 8831693787 8835522045 8839351189
8843178258 8847005111 8850833617 8854661783 8858489122 8862316589
8866142270 8869969843 8873798791 8877625550 8881454216 8885281481
8889107576 8892934492 8896759114 8900584768 8904410048 8908237747
8912064593 8915891959 8919718649 8923544583 8927370110 8931196690
8935021245 8938848731 8942673588 8946499642 8950327349 8954152236
8957978906 8961805071 8965632114 8969457412 8973281958 8977105213
8980930496 8984755355 8988581527 8992406119 8996232175 9000056637
9003881254 9007707266 9011529965 9015356067 9019181611 9023007515
9026831888 9030657979 9034481465 9038304937 9042129424 9045953722
9049777452 9053602317 9057427249 9061251077 9065075206 9068899170
9072721955 9076545183 9080368060 9084194388 9088019639 9091842022
9095666570 9099490423 9103315110 9107138553 9110961084 9114784105
9118605617 9122427939 9126250354 9130072595 9133894729 9137716597
9141539142 9145360320 9149182624 9153005391 9156827831 9160649808
9164473181 9168294634 9172116737 9175938413 9179760373 9183580875
9187402534 9191223217 9195047184 9198868815 9202690747 9206509573
9210331210 9214153637 9217976563 9221796328 9225616992 9229437854
9233259505 9237081473 9240902259 9244724275 9248544708 9252365681
9256186367 9260007168 9263827368 9267649055 9271469063 9275290003
9279110734 9282932529 9286751156 9290572733 9294393105 9298214875
9302033296 9305853546 9309672747 9313494111 9317311014 9321131754
9324952478 9328772475 9332591785 9336412827 9340232225 9344049810
9347869016 9351689557 9355509905 9359329837 9363150767 9366970187
9370790280 9374608234 9378429784 9382248434 9386066702 9389885231
9393702629 9397521489 9401340266 9405158358 9408975240 9412793714
9416613077 9420430474 9424248765 9428068719 9431885224 9435703963
9439522698 9443340687 9447158337 9450977169 9454794696 9458612801
9462430317 9466249368 9470066482 9473883938 9477699956 9481515418
9485332069 9489148523 9492967140 9496786778 9500601505 9504419577
9508234755 9512051339 9515868843 9519687057 9523503935 9527321152
9531138516 9534954260 9538769484 9542585532 9546403215 9550219588
9554034469 9557849517 9561665966 9565481682 9569298320 9573113798
9576928967 9580744115 9584560612 9588375990 9592192649 9596006866
9599821598 9603636507 9607452859 9611268131 9615081801 9618897840
9622711739 9626526252 9630341305 9634155136 9637969302 9641782838
9645595616 9649411984 9653227003 9657039403 9660853964 9664667958
9668482612 9672296131 9676109339 9679922718 9683734140 9687548030
9691363233 9695176409 9698989695 9702804825 9706619446 9710433564
9714245159 9718060257 9721872684 9725685706 9729499031 9733313081
9737125712 9740938808 9744752088 9748564335 9752379474 9756191660
9760004459 9763816212 9767629195 9771441764 9775254834 9779066500
9782879543 9786691996 9790505792 9794317685 9798129597 9801940666
9805753459 9809565419 9813375663 9817187685 9820998044 9824810531
9828621597 9832433495 9836244187 9840054959 9843866704 9847677747
9851488628 9855300717 9859111184 9862923696 9866735299 9870544442
9874357676 9878167612 9881977920 9885788496 9889598989 9893409707
9897219348 9901029948 9904841278 9908650096 9912459666 9916270569
9920079604 9923888495 9927699881 9931510279 9935319832 9939129479
9942938911 9946751910 9950561167 9954372033 9958182924 9961992026
9965802672 9969612081 9973420067 9977229502 9981038422 9984847817
9988659068 9992466562 9996274799 10000083718 10003891738 10007700233
10011510116 10015317577 10019127279 10022936494 10026745730 10030554373
10034363093 10038171833 10041981029 10045789193 10049596956 10053406444
10057214644 10061024519 10064834767 10068641678 10072449435 10076258573
10080066388 10083873986 10087681275 10091489482 10095297791 10099105208
10102913100 10106721502 10110528913 10114336672 10118142052 10121949247
10125755392 10129562093 10133368622 10137175410 10140981990 10144787238
10148595634 10152402899 10156208372 10160013972 10163821069 10167628404
10171434784 10175240279 10179046701 10182851955 10186658766 10190466743
10194271550 10198076458 10201884741 10205690617 10209496027 10213301466
10217109357 10220916076 10224720790 10228525670 10232329829 10236136272
10239942045 10243747285 10247551917 10251358321 10255162963 10258967727
10262771466 10266576471 10270383400 10274188616 10277994237 10281797871
10285602155 10289407137 10293212296 10297017417 10300824253 10304627621
10308433255 10312238059 10316042498 10319846348 10323650572 10327454823
10331258139 10335060919 10338865091 10342669877 10346473748 10350277912
10354082184 10357886162 10361689036 10365491556 10369294206 10373099707
10376904214 10380708405 10384512163 10388318224 10392120921 10395924533
10399728104 10403530933 10407333536 10411135882 10414938188 10418742046
10422546910 10426350365 10430152317 10433954793 10437757082 10441560809
10445363608 10449164488 10452965524 10456768006 10460569821 10464371499
10468173399 10471977446 10475777272 10479578174 10483380429 10487183139
10490983871 10494785924 10498589780 10502390529 10506192380 10509993251
10513794613 10517593306 10521393859 10525196055 10528998320 10532799607
10536601493 10540402129 10544201092 10548003029 10551804573 10555605682
10559406246 10563206366 10567007890 10570807147 10574608271 10578408804
10582210511 10586010649 10589810296 10593611627 10597411617 10601212684
10605012711 10608812477 10612611025 10616410647 10620210197 10624010257
10627811325 10631611966 10635411213 10639211982 10643012206 10646811843
10650612046 10654411866 10658213094 10662011766 10665811340 10669610211
10673409070 10677208528 10681008150 10684806881 10688606154 10692405538
10696202934 10700003030 10703801608 10707600747 10711399981 10715199865
10718999292 10722797634 10726597886 10730395528 10734194353 10737991464
10741789513 10745588850 10749388051 10753185627 10756983604 10760781743
10764579775 10768378625 10772174931 10775972758 10779770209 10783567957
10787364307 10791162708 10794961196 10798758742 10802556392 10806354602
10810151774 10813948939 10817747312 10821542844 10825339191 10829136756
10832932304 10836728763 10840526823 10844324258 10848119308 10851915655
10855711717 10859511224 10863308678 10867104637 10870900055 10874696367
10878494039 10882290419 10886085467 10889882478 10893679420 10897474767
10901271072 10905066180 10908860892 10912656363 10916453426 10920250390
10924047399 10927842980 10931637201 10935433847 10939229688 10943024482
10946819660 10950615271 10954410038 10958205286 10961999869 10965795434
10969590038 10973385594 10977183732 10980978159 10984773472 10988568775
10992362247 10996156719 10999952056 11003748756 11007541842 11011335407
11015129371 11018923212 11022718428 11026514081 11030307991 11034102718
11037897194 11041690001 11045484359 11049276915 11053071891 11056865258
11060658751 11064454148 11068247825 11072042179 11075834662 11079628141
11083422510 11087216412 11091009773 11094802158 11098595626 11102389221
11106183909 11109975998 11113768611 11117560899 11121354288 11125147300
11128939626 11132732683 11136525382 11140318960 11144111874 11147904199
11151699072 11155489228 11159283070 11163075875 11166868392 11170661739
11174455696 11178248733 11182039223 11185832165 11189623910 11193416372
11197209261 11201001980 11204794166 11208585673 11212377890 11216167932
11219960111 11223752137 11227545406 11231338088 11235130595 11238921853
11242714233 11246507724 11250298881 11254089419 11257879467 11261671146
11265461086 11269251507 11273043164 11276834321 11280625351 11284417933
11288207395 11291998386 11295789005 11299576886 11303366578 11307157097
11310948974 11314739258 11318529497 11322320913 11326109623 11329900857
11333690715 11337481444 11341270831 11345060050 11348850378 11352640377
11356428717 11360218716 11364008524 11367795771 11371585017 11375374103
11379162292 11382952693 11386743860 11390533088 11394323649 11398112802
11401902574 11405692029 11409479894 11413268200 11417056836 11420845310
11424635185 11428426530 11432214995 11436004785 11439794944 11443582242
11447370032 11451160603 11454947867 11458736041 11462524684 11466312376
11470102767 11473892035 11477679897 11481466909 11485254772 11489043276
11492831723 11496620039 11500409580 11504197736 11507985818 11511774375
11515562614 11519350373 11523136032 11526922786 11530710539 11534498294
11538284664 11542073461 11545861466 11549650506 11553438423 11557224847
11561012938 11564800999 11568587659 11572374400 11576161752 11579948227
11583735207 11587522968 11591309566 11595095689 11598881911 11602670022
11606457814 11610244878 11614030418 11617815772 11621603097 11625388396
11629175490 11632961711 11636746539 11640533976 11644319434 11648105310
11651892205 11655679444 11659463162 11663250182 11667036765 11670823607
11674609698 11678394598 11682181417 11685967466 11689751741 11693537519
11697322266 11701109174 11704893483 11708678167 11712463553 11716248809
11720033902 11723819292 11727605183 11731390172 11735174348 11738958221
11742743077 11746529016 11750314650 11754099037 11757884225 11761667988
11765453123 11769239024 11773024213 11776810603 11780595135 11784381092
11788165108 11791949929 11795733951 11799518150 11803302709 11807087121
11810870761 11814655229 11818439135 11822222174 11826005833 11829787971
11833572988 11837357502 11841141857 11844925273 11848708103 11852490994
11856276333 11860058893 11863841782 11867624853 11871407838 11875191495
11878975156 11882758689 11886540464 11890324941 11894107246 11897891261
11901673706 11905457444 11909241733 11913024161 11916806753 11920588651
11924371164 11928154227 11931935947 11935717422 11939502506 11943284749
11947066207 11950848542 11954629727 11958412119 11962194140 11965977207
11969760343 11973539894 11977321825 11981104415 11984888160 11988670038
11992452065 11996232707 12000015785 12003798168 12007579969 12011362232
12015141749 12018922409 12022703393 12026483194 12030263959 12034045333
12037826348 12041609856 12045390493 12049171479 12052951379 12056731752
12060513295 12064294245 12068076156 12071857158 12075638612 12079419066
12083200347 12086980885 12090760731 12094540083 12098320800 12102104118
12105882373 12109663587 12113442717 12117224085 12121002968 12124784428
12128564514 12132344093 12136122955 12139905025 12143685124 12147464298
12151243690 12155023283 12158804048 12162585423 12166366144 12170147648
12173928114 12177708169 12181487142 12185265486 12189043664 12192823798
12196603558 12200382378 12204159428 12207939464 12211718480 12215496564
12219276739 12223054954 12226834829 12230613963 12234395918 12238173776
12241953569 12245732935 12249512445 12253288114 12257067844 12260847004
12264624522 12268401107 12272179678 12275957272 12279736428 12283514916
12287292824 12291069731 12294847773 12298627436 12302406681 12306184341
12309962326 12313740224 12317517341 12321294588 12325070771 12328847984
12332626628 12336403019 12340180712 12343958622 12347736248 12351514536
12355291334 12359069232 12362846513 12366624467 12370403069 12374178509
12377955281 12381732238 12385509344 12389286253 12393063446 12396841724
12400618487 12404395901 12408172270 12411948321 12415725927 12419501289
12423276776 12427055171 12430831274 12434608243 12438386800 12442161591
12445937079 12449712579 12453489342 12457264722 12461040815 12464817468
12468594123 12472371416 12476148341 12479924727 12483699013 12487476514
12491252479 12495028822 12498803485 12502579114 12506356619 12510130933
12513906682 12517681118 12521454825 12525229046 12529004970 12532779833
12536555688 12540333573 12544107385 12547881506 12551656688 12555431483
12559207206 12562981788 12566757413 12570532719 12574308380 12578084426
12581859580 12585633758 12589408554 12593182927 12596957371 12600733579
12604507303 12608280085 12612055494 12615830685 12619604745 12623378747
12627152903 12630928626 12634702339 12638477704 12642251295 12646024685
12649798686 12653572164 12657345006 12661117476 12664892342 12668666079
12672439303 12676213956 12679987600 12683760493 12687535503 12691310232
12695083933 12698857005 12702630211 12706403648 12710176792 12713949661
12717723289 12721496738 12725268924 12729042018 12732816083 12736587537
12740358962 12744131997 12747905112 12751677584 12755449369 12759222326
12762993327 12766765534 12770539307 12774313667 12778087207 12781859664
12785630726 12789403249 12793175831 12796948071 12800721288 12804492846
12808264276 12812036354 12815807915 12819580996 12823352022 12827124177
12830895093 12834667916 12838439888 12842211012 12845983379 12849755785
12853526773 12857298655 12861071188 12864841488 12868611566 12872384587
12876156822 12879928805 12883698341 12887469184 12891239393 12895010480
12898781879 12902551910 12906321196 12910092479 12913862299 12917633948
12921404195 12925175174 12928948045 12932720140 12936490604 12940262377
12944032860 12947803906 12951576227 12955345629 12959116325 12962887668
12966658258 12970429107 12974198934 12977970359 12981740315 12985511299
12989281219 12993049886 12996820178 13000590008 13004359373 13008128234
13011898624 13015668340 13019436283 13023206981 13026977348 13030746032
13034515749 13038283978 13042052672 13045822163 13049590129 13053359184
13057127974 13060896622 13064666749 13068435422 13072203591 13075973293
13079742917 13083512832 13087281549 13091052005 13094818675 13098586471
13102355564 13106124308 13109892041 13113661452 13117429572 13121199715
13124968504 13128737027 13132505707 13136273053 13140041599 13143809020
13147578733 13151345845 13155114883 13158883919 13162651103 13166419104
13170187096 13173953961 13177720878 13181488566 13185255006 13189023053
13192789884 13196557364 13200325152 13204092290 13207860808 13211628082
13215397217 13219164718 13222933338 13226701352 13230467557 13234234922
13238000823 13241766944 13245535449 13249301120 13253068707 13256835669
13260601916 13264368591 13268135933 13271901752 13275670562 13279437111
13283203369 13286968939 13290735287 13294500348 13298266960 13302032741
13305799714 13309565373 13313331378 13317097084 13320864302 13324631620
13328400814 13332165708 13335931465 13339697818 13343464583 13347232312
13350997318 13354764541 13358528496 13362293592 13366061576 13369827586
13373592692 13377359090 13381124586 13384890608 13388654959 13392420080
13396183930 13399948925 13403713062 13407479395 13411244052 13415010256
13418775602 13422540111 13426306992 13430069627 13433832862 13437598203
13441364354 13445128930 13448893030 13452656685 13456420885 13460185112
13463948740 13467713446 13471478413 13475243710 13479007879 13482770038
13486534892 13490299043 13494062459 13497826576 13501590538 13505355371
13509119693 13512884028 13516646593 13520410939 13524174183 13527939242
13531702417 13535465776 13539231459 13542995395 13546758686 13550522557
13554287967 13558052979 13561816016 13565578739 13569342272 13573105196
13576867353 13580632639 13584396053 13588159143 13591923193 13595685628
13599448332 13603211827 13606974981 13610739091 13614503226 13618265498
13622030555 13625794459 13629557546 13633319902 13637083040 13640845709
13644608705 13648371320 13652132158 13655894718 13659658625 13663421592
13667184038 13670947090 13674709472 13678471459 13682233096 13685995058
13689756925 13693520820 13697282977 13701045565 13704806310 13708567528
13712329590 13716091599 13719853646 13723614966 13727376394 13731140611
13734902368 13738663303 13742426720 13746187951 13749948928 13753711503
13757473600 13761234862 13764996314 13768759602 13772521401 13776283306
13780043763 13783804313 13787564824 13791327080 13795086880 13798848009
13802608973 13806369071 13810129457 13813889172 13817649074 13821409822
13825172994 13828934060 13832694586 13836455027 13840216265 13843977223
13847735986 13851496154 13855256130 13859017457 13862777646 13866537984
13870297103 13874057310 13877817274 13881575999 13885336121 13889096636
13892855593 13896616023 13900376651 13904136974 13907896321 13911657415
13915417083 13919175600 13922933647 13926692683 13930454423 13934214280
13937973965 13941732767 13945493527 13949254760 13953014989 13956772920
13960532018 13964292676 13968052613 13971810049 13975569331 13979327816
13983086108 13986844576 13990603461 13994363127 13998120691 14001878431
14005636879 14009396321 14013154556 14016911867 14020670336 14024429183
14028188476 14031946950 14035705932 14039464178 14043224011 14046984148
14050743374 14054502231 14058262027 14062020353 14065777648 14069536753
14073294860 14077052648 14080812200 14084569454 14088326712 14092084102
14095841890 14099599780 14103356232 14107113685 14110873541 14114631625
14118388384 14122146541 14125903130 14129659939 14133415887 14137172256
14140928490 14144686638 14148442704 14152199734 14155958094 14159714584
14163472300 14167231333 14170988368 14174744678 14178500534 14182260316
14186016948 14189772082 14193528385 14197285176 14201042951 14204800206
14208559073 14212313290 14216069959 14219827185 14223582819 14227340035
14231095568 14234854085 14238609777 14242365919 14246122097 14249878830
14253634644 14257389885 14261147316 14264902832 14268660299 14272416709
14276173056 14279928645 14283683530 14287438116 14291193600 14294948278
14298702729 14302460444 14306216612 14309973017 14313728791 14317483443
14321240021 14324996919 14328752954 14332507345 14336262600 14340019040
14343773832 14347530042 14351287304 14355040768 14358796366 14362552016
14366306270 14370063078 14373817308 14377571882 14381326366 14385080338
14388835256 14392589014 14396344370 14400098660 14403854251 14407610799
14411366083 14415121163 14418876351 14422631598 14426386096 14430140795
14433895142 14437649507 14441403338 14445158056 14448913358 14452667752
14456422318 14460176837 14463930323 14467685683 14471439239 14475192900
14478945731 14482699373 14486454776 14490208164 14493962585 14497717361
14501472420 14505225309 14508979921 14512733001 14516486032 14520240656
14523993617 14527748030 14531500370 14535254205 14539008893 14542763035
14546514878 14550268388 14554022626 14557775336 14561529795 14565281093
14569035190 14572787386 14576540373 14580294170 14584045987 14587798156
14591550135 14595300499 14599052501 14602805514 14606558511 14610310382
14614063144 14617814181 14621568172 14625320797 14629073771 14632826500
14636576767 14640330164 14644083087 14647833884 14651585206 14655338044
14659091070 14662840918 14666592662 14670345487 14674094990 14677847217
14681600673 14685354155 14689105773 14692855940 14696608756 14700361150
14704112324 14707864086 14711616647 14715368003 14719119718 14722871524
14726622843 14730375362 14734128039 14737879518 14741629655 14745381845
14749132929 14752883546 14756635068 14760386034 14764137555 14767888212
14771637576 14775388952 14779139007 14782890972 14786641832 14790394562
14794146553 14797899154 14801650057 14805400772 14809150816 14812900338
14816653073 14820402349 14824152437 14827904144 14831655048 14835406610
14839156441 14842906748 14846654177 14850404376 14854155111 14857904686
14861655386 14865405380 14869155962 14872906421 14876655731 14880405932
14884157077 14887908229 14891657958 14895407728 14899157740 14902907769
14906656769 14910407684 14914157927 14917908472 14921656184 14925407100
14929155493 14932905082 14936653319 14940402546 14944151299 14947899055
14951648258 14955397550 14959146007 14962894740 14966643778 14970391429
14974140515 14977887963 14981637119 14985386651 14989135339 14992884734
14996633366 15000382088 15004129803 15007879521 15011627054 15015375543
15019125373 15022871342 15026620043 15030367958 15034117039 15037866718
15041614605 15045361203 15049109478 15052860243 15056608234 15060356531
15064104710 15067853767 15071602115 15075349541 15079097471 15082845511
15086593908 15090342693 15094091012 15097838933 15101587698 15105334977
15109082641 15112829115 15116576060 15120323028 15124070681 15127818666
15131566364 15135312461 15139059397 15142807321 15146554063 15150299747
15154045545 15157793497 15161540353 15165289175 15169037186 15172785094
15176531441 15180278852 15184025905 15187771452 15191520477 15195268906
15199014820 15202763540 15206510873 15210257037 15214004279 15217750602
15221496307 15225244067 15228990818 15232737221 15236483128 15240231207
15243975510 15247721738 15251467583 15255212673 15258959472 15262707020
15266454787 15270200468 15273944966 15277689532 15281436532 15285183204
15288928300 15292674104 15296420609 15300167333 15303912993 15307658188
15311405987 15315150873 15318896417 15322640752 15326386111 15330130102
15333876366 15337622450 15341369009 15345114302 15348861801 15352608625
15356354546 15360099349 15363843047 15367588050 15371333889 15375079798
15378824606 15382571636 15386316181 15390062862 15393806225 15397552532
15401297567 15405042186 15408786450 15412531763 15416277169 15420020816
15423766049 15427510439 15431255378 15435001094 15438745772 15442488992
15446232449 15449977956 15453722883 15457467548 15461210953 15464955307
15468699077 15472443024 15476186699 15479930709 15483675106 15487419215
15491164611 15494908020 15498650023 15502393968 15506137698 15509882810
15513625563 15517370417 15521112716 15524855856 15528598789 15532343059
15536085415 15539828472 15543573157 15547316993 15551060085 15554804865
15558546829 15562290030 15566033605 15569775590 15573519081 15577262617
15581005657 15584748182 15588492226 15592235766 15595978559 15599721887
15603464360 15607207231 15610949856 15614693135 15618434878 15622177065
15625919389 15629662201 15633406526 15637148953 15640892851 15644635294
15648378373 15652119754 15655861196 15659602967 15663346034 15667088159
15670830637 15674573678 15678315538 15682059078 15685799423 15689541411
15693285553 15697027708 15700769114 15704510979 15708250800 15711992794
15715735623 15719480574 15723221031 15726962772 15730704847 15734446342
15738190423 15741931660 15745673314 15749416364 15753158763 15756901398
15760641312 15764381837 15768124849 15771867719 15775609764 15779352070
15783092341 15786834856 15790575133 15794317207 15798059308 15801801056
15805543247 15809285773 15813026932 15816769486 15820511830 15824251683
15827993345 15831734701 15835473430 15839214484 15842955280 15846693456
15850433236 15854175378 15857915165 15861656409 15865396764 15869136195
15872877692 15876617373 15880358371 15884098894 15887838713 15891579164
15895320798 15899061153 15902800224 15906541045 15910279933 15914020453
15917759688 15921500825 15925241855 15928980906 15932721980 15936461886
15940202960 15943942755 15947682266 15951423008 15955163563 15958903374
15962643080 15966382090 15970120180 15973860905 15977599311 15981338159
15985076288 15988814720 15992555538 15996295865 16000036033 16003775927
16007516533 16011255365 16014991774 16018731689 16022471574 16026210692
16029949361 16033688209 16037428595 16041166233 16044905775 16048645172
16052383887 16056124815 16059863961 16063602740 16067341756 16071080630
16074819887 16078558728 16082299998 16086037327 16089775752 16093512372
16097251430 16100989766 16104727746 16108466812 16112203828 16115941471
16119678991 16123416791 16127155959 16130896033 16134633908 16138372570
16142109562 16145847807 16149585897 16153324178 16157060128 16160796419
16164534074 16168271689 16172010309 16175747806 16179486683 16183223173
16186960691 16190699787 16194437327 16198175637 16201913992 16205651082
16209388522 16213126959 16216863820 16220599499 16224335664 16228074117
16231812491 16235549140 16239286196 16243024161 16246762605 16250499719
16254237919 16257974615 16261712093 16265450304 16269185682 16272922183
16276660740 16280397790 16284133696 16287870157 16291606719 16295343157
16299078993 16302816424 16306552455 16310290674 16314028016 16317764008
16321499454 16325235885 16328971825 16332707323 16336443098 16340180709
16343918484 16347657001 16351393441 16355128656 16358862797 16362598178
16366335573 16370071561 16373808589 16377544822 16381279990 16385016603
16388751904 16392489996 16396224420 16399958102 16403695002 16407430184
16411164752 16414900308 16418636286 16422370481 16426106461 16429841796
16433577469 16437313492 16441047500 16444782428 16448517253 16452253378
16455989930 16459724086 16463460182 16467195781 16470932185 16474666071
16478402042 16482138683 16485873525 16489607554 16493343173 16497077953
16500812831 16504548149 16508284298 16512018353 16515752864 16519487305
16523224177 16526957570 16530691412 16534427596 16538162301 16541895758
16545630072 16549364992 16553098122 16556833121 16560567326 16564303251
16568038623 16571773008 16575507160 16579241753 16582975829 16586708804
16590442181 16594175751 16597911256 16601643783 16605377142 16609112682
16612847290 16616580442 16620314809 16624048650 16627782465 16631515517
16635250945 16638983906 16642718300 16646451491 16650184570 16653917780
16657651855 16661385655 16665118213 16668852410 16672584730 16676315839
16680049892 16683783697 16687519052 16691251761 16694983376 16698716500
16702450413 16706184714 16709918467 16713652596 16717386725 16721120104
16724852694 16728586518 16732318897 16736053623 16739788200 16743522973
16747255850 16750987945 16754720909 16758452617 16762184071 16765916643
16769649646 16773383435 16777115171 16780848923 16784580678 16788314425
16792047022 16795780230 16799512432 16803242915 16806974927 16810708284
16814441255 16818171960 16821903678 16825636591 16829369410 16833102460
16836833217 16840565541 16844296974 16848029997 16851762354 16855492928
16859226368 16862958570 16866689728 16870420508 16874152963 16877885553
16881616720 16885348503 16889080219 16892811529 16896540868 16900272144
16904005670 16907737763 16911467775 16915199054 16918931179 16922661766
16926392428 16930122558 16933853180 16937585786 16941316552 16945046469
16948776594 16952507445 16956240048 16959970729 16963701687 16967432330
16971163484 16974894003 16978625889 16982357570 16986087548 16989820028
16993551246 16997283198 17001012183 17004741317 17008471725 17012199942
17015930940 17019661494 17023390756 17027121401 17030853252 17034583139
17038313605 17042042796 17045773714 17049504407 17053233813 17056961784
17060693066 17064422805 17068153448 17071883706 17075613246 17079346012
17083075756 17086806772 17090536335 17094265784 17097994508 17101723891
17105453770 17109182689 17112911708 17116640592 17120369050 17124098377
17127828987 17131558575 17135288755 17139018623 17142749736 17146478766
17150207561 17153935781 17157663156 17161392326 17165123989 17168851473
17172579326 17176309095 17180037329 17183764418 17187493754 17191223684
17194952474 17198681878 17202411378 17206140524 17209867660 17213595987
17217325318 17221054004 17224781810 17228509424 17232237824 17235967742
17239696378 17243426115 17247153710 17250882791 17254613072 17258341854
17262071213 17265799167 17269527765 17273255693 17276986685 17280714557
17284444598 17288170185 17291897839 17295624117 17299351251 17303079374
17306807521 17310535178 17314262567 17317989517 17321718749 17325445484
17329172478 17332899801 17336628158 17340354819 17344081489 17347809100
17351537306 17355265836 17358994383 17362722216 17366448951 17370177434
17373905758 17377631187 17381358021 17385085667 17388813828 17392541753
17396269118 17399995804 17403722234 17407448715 17411175546 17414901853
17418630350 17422356257 17426085678 17429813458 17433538759 17437266140
17440993823 17444720673 17448448326 17452176801 17455904111 17459630749
17463357736 17467084165 17470811161 17474537311 17478264698 17481992028
17485717981 17489442699 17493170139 17496898369 17500625181 17504350039
17508077221 17511802808 17515529260 17519254922 17522981474 17526709710
17530435675 17534162406 17537887697 17541613382 17545339362 17549063948
17552792151 17556518368 17560242966 17563969801 17567693177 17571417922
17575144771 17578871095 17582597534 17586322738 17590048359 17593773703
17597497562 17601222543 17604947900 17608672601 17612395893 17616121498
17619846448 17623572905 17627299193 17631024244 17634749409 17638474667
17642200116 17645924697 17649650380 17653375533 17657101071 17660826956
17664552823 17668277512 17672001364 17675726827 17679452162 17683175789
17686901885 17690625885 17694350543 17698076196 17701800578 17705524000
17709250738 17712975058 17716698367 17720421881 17724145830 17727872260
17731596551 17735319412 17739043261 17742768638 17746492315 17750218095
17753942023 17757667245 17761391822 17765116323 17768842700 17772566677
17776289199 17780012771 17783737004 17787461231 17791185847 17794909398
17798634422 17802356507 17806078840 17809802074 17813528917 17817252147
17820976186 17824700665 17828424695 17832148281 17835872488 17839596214
17843320185 17847044233 17850767701 17854490177 17858213079 17861939354
17865662831 17869387799 17873109471 17876831999 17880556064 17884279983
17888001461 17891722569 17895447080 17899169707 17902892143 17906615938
17910338451 17914060868 17917782520 17921506001 17925230138 17928954152
17932675521 17936397468 17940119446 17943843419 17947567025 17951289692
17955012021 17958736847 17962459832 17966182380 17969904437 17973625368
17977348719 17981070998 17984793811 17988514077 17992237747 17995961970
17999683467 18003406219 18007128833 18010849284 18014573022 18018296673
18022017887 18025741023 18029461331 18033182574 18036904631 18040625840
18044347968 18048070247 18051789480 18055509185 18059233037 18062955228
18066677311 18070398842 18074121896 18077842058 18081564224 18085286692
18089007440 18092730504 18096452594 18100175771 18103897641 18107620077
18111340834 18115061524 18118782497 18122503050 18126223484 18129945385
18133666267 18137387141 18141109309 18144829108 18148549907 18152271332
18155993921 18159713747 18163435721 18167156915 18170878749 18174599741
18178320035 18182041446 18185762578 18189482867 18193204773 18196924997
18200646496 18204367744 18208088912 18211807652 18215528801 18219250239
18222970682 18226692066 18230411897 18234132500 18237853118 18241573310
18245292967 18249011668 18252731499 18256451938 18260172452 18263890763
18267611311 18271334073 18275052967 18278773727 18282494646 18286213427
18289932865 18293652658 18297373519 18301093908 18304814424 18308534759
18312253602 18315975074 18319693976 18323414648 18327135821 18330856044
18334575939 18338295230 18342014692 18345733411 18349453799 18353172306
18356891424 18360610156 18364327045 18368046632 18371765904 18375486286
18379204746 18382924981 18386644602 18390362921 18394082291 18397799511
18401520364 18405239449 18408959239 18412679459 18416397265 18420116956
18423835105 18427556119 18431274081 18434992643 18438710985 18442428746
18446146557 18449864307 18453581354 18457301649 18461020489 18464739571
18468458787 18472177275 18475895467 18479613659 18483331580 18487049587
18490768353 18494486283 18498205558 18501923494 18505641296 18509359786
18513078520 18516795963 18520514540 18524232202 18527950791 18531668250
18535388328 18539106426 18542824826 18546542267 18550259221 18553976090
18557694921 18561410475 18565127861 18568847694 18572566489 18576283391
18580001800 18583720001 18587437326 18591155039 18594871797 18598591181
18602311280 18606028866 18609746739 18613462388 18617179421 18620897499
18624614449 18628330760 18632047202 18635764229 18639481797 18643200248
18646917287 18650632596 18654350951 18658068984 18661788157 18665506423
18669223000 18672940989 18676656736 18680373290 18684091193 18687807709
18691525305 18695242593 18698956379 18702673617 18706390778 18710107892
18713824407 18717538911 18721255743 18724972003 18728688336 18732403835
18736121110 18739836751 18743554578 18747270497 18750987053 18754702346
18758420326 18762136495 18765853757 18769569083 18773285836 18777002212
18780718136 18784434908 18788152112 18791866523 18795583149 18799299559
18803015182 18806731284 18810446300 18814163609 18817877851 18821594648
18825311357 18829026873 18832742731 18836459065 18840176010 18843891366
18847608270 18851323857 18855041036 18858755885 18862471699 18866186261
18869901618 18873617505 18877331293 18881047010 18884761608 18888476324
18892191250 18895906571 18899621555 18903338143 18907053275 18910768443
18914483915 18918200255 18921913522 18925628553 18929343588 18933059899
18936775942 18940491229 18944206431 18947920129 18951633929 18955348690
18959063474 18962779434 18966496060 18970210777 18973925518 18977638843
18981355145 18985072108 18988785613 18992500832 18996217081 18999931889
19003646989 19007361853 19011075720 19014790716 19018506442 19022219914
19025933851 19029647957 19033362791 19037076030 19040789333 19044502459
19048216350 19051930282 19055644587 19059358363 19063073181 19066785133
19070500703 19074214247 19077929777 19081645150 19085357443 19089072444
19092785252 19096498554 19100210658 19103924518 19107638048 19111351950
19115065270 19118780251 19122492882 19126208087 19129920642 19133636416
19137352187 19141064846 19144777981 19148491307 19152204352 19155916972
19159628229 19163341664 19167053552 19170766596 19174482125 19178194758
19181907545 19185621530 19189335041 19193047784 19196760548 19200473232
19204186443 19207898055 19211610120 19215322341 19219033696 19222747596
19226459863 19230173456 19233887424 19237600378 19241312372 19245026026
19248738798 19252450478 19256163349 19259876441 19263589015 19267301502
19271014309 19274725953 19278440325 19282151499 19285862424 19289572993
19293287732 19296999568 19300712310 19304423390 19308136142 19311848522
19315560082 19319273215 19322984798 19326696946 19330410363 19334122529
19337834964 19341547458 19345259416 19348971717 19352684752 19356394772
19360106584 19363818175 19367529736 19371240926 19374952420 19378664824
19382375542 19386087928 19389799053 19393511116 19397223546 19400934437
19404647074 19408358247 19412069917 19415781163 19419491814 19423203075
19426912722 19430624033 19434337563 19438048585 19441759364 19445471895
19449184487 19452895306 19456605121 19460317955 19464027955 19467740019
19471452820 19475164462 19478874214 19482585328 19486295950 19490007518
19493720195 19497429781 19501139941 19504851865 19508561483 19512272542
19515982823 19519693932 19523405013 19527115697 19530824175 19534535346
19538245127 19541954299 19545666606 19549376321 19553085684 19556796801
19560507743 19564217969 19567928182 19571639578 19575350143 19579061810
19582770384 19586482128 19590192099 19593902321 19597611369 19601319191
19605027507 19608739048 19612450686 19616161498 19619870217 19623578557
19627288274 19630999076 19634709494 19638419429 19642130507 19645837160
19649546880 19653259308 19656970115 19660682215 19664393749 19668103126
19671812304 19675521483 19679230267 19682939744 19686649407 19690357915
19694066119 19697773079 19701482487 19705191523 19708901021 19712608294
19716318181 19720030147 19723740603 19727449352 19731159331 19734866265
19738576916 19742285584 19745994079 19749702117 19753411435 19757119378
19760829013 19764537619 19768246020 19771956929 19775665100 19779372613
19783079850 19786788149 19790497170 19794206482 19797916706 19801625649
19805335041 19809044285 19812752093 19816459379 19820168954 19823878517
19827589636 19831297175 19835006066 19838715972 19842421652 19846128894
19849837797 19853545457 19857254143 19860963931 19864670208 19868379644
19872088010 19875796087 19879503471 19883212707 19886921446 19890628267
19894335142 19898042222 19901749970 19905457650 19909165949 19912874572
19916581258 19920289557 19923998015 19927705812 19931413793 19935122665
19938829769 19942538288 19946247631 19949955674 19953662756 19957370374
19961076772 19964785588 19968494056 19972201632 19975909780 19979616750
19983323591 19987028994 19990736827 19994444482 19998151671 20001857300
20005564712 20009272099 20012980183 20016686966 20020394317 20024098602
20027806900 20031513748 20035221154 20038928298 20042637152 20046342324
20050047970 20053754389 20057462295 20061167954 20064875221 20068580818
20072287566 20075994129 20079699371 20083408134 20087114829 20090820617
20094526950 20098232762 20101938924 20105644014 20109350343 20113056961
20116763555 20120471256 20124177471 20127885329 20131592159 20135296617
20139003033 20142708468 20146414827 20150119745 20153826055 20157530952
20161235589 20164941850 20168647691 20172353682 20176061269 20179768258
20183473156 20187178643 20190883998 20194590860 20198295994 20202002056
20205708112 20209416198 20213120700 20216826086 20220530791 20224235405
20227942102 20231647362 20235352001 20239056036 20242762746 20246469029
20250174223 20253879169 20257584510 20261290767 20264996242 20268702755
20272407835 20276114011 20279821027 20283526255 20287231431 20290937333
20294643458 20298347449 20302048487 20305754342 20309460674 20313165548
20316870099 20320575093 20324281605 20327987196 20331692720 20335399260
20339106240 20342810821 20346514752 20350219084 20353923325 20357628208
20361331958 20365037293 20368741982 20372446136 20376149529 20379855401
20383560917 20387265383 20390969381 20394673418 20398378700 20402082287
20405786952 20409491065 20413196828 20416901019 20420605272 20424309242
20428011956 20431714492 20435418198 20439124017 20442828013 20446533229
20450237642 20453942448 20457646774 20461351318 20465054171 20468759405
20472461873 20476167293 20479869988 20483575778 20487279988 20490981778
20494684312 20498388424 20502091292 20505794438 20509498453 20513203163
20516906423 20520611505 20524315520 20528018235 20531723110 20535426564
20539129878 20542832458 20546537023 20550240256 20553945717 20557649189
20561352755 20565055477 20568757376 20572460840 20576165057 20579868925
20583571957 20587275095 20590977053 20594680382 20598382797 20602086777
20605789669 20609492504 20613194066 20616895563 20620597986 20624301346
20628003800 20631705412 20635408725 20639113705 20642817069 20646520622
20650222774 20653926434 20657628450 20661331080 20665034298 20668738092
20672440832 20676141849 20679844337 20683549284 20687252412 20690954559
20694656177 20698359667 20702059618 20705761969 20709464775 20713167462
20716870297 20720573490 20724276474 20727979689 20731680321 20735382365
20739084879 20742788418 20746489509 20750190223 20753890908 20757591745
20761291944 20764992717 20768693270 20772395061 20776097384 20779799008
20783500691 20787202875 20790904461 20794606290 20798305518 20802007782
20805709739 20809410693 20813112310 20816814458 20820514795 20824216255
20827918401 20831619460 20835320848 20839021010 20842722083 20846423775
20850125894 20853826404 20857528810 20861228999 20864930860 20868632518
20872335448 20876035871 20879737810 20883437807 20887137590 20890837979
20894538574 20898238560 20901939855 20905638722 20909340160 20913040138
20916740850 20920442998 20924144710 20927844046 20931544658 20935245845
20938947886 20942647454 20946347345 20950048947 20953750995 20957451491
20961154139 20964854909 20968554350 20972254643 20975955181 20979654221
20983355674 20987055884 20990756338 20994457306 20998158476 21001858153
21005560389 21009258111 21012957942 21016659375 21020358939 21024059945
21027760318 21031460183 21035159576 21038859816 21042558895 21046260030
21049958554 21053659367 21057358222 21061058534 21064757994 21068457235
21072156117 21075856861 21079554700 21083256921 21086956115 21090655562
21094354720 21098053226 21101751950 21105450438 21109149149 21112849244
21116548708 21120247879 21123949837 21127648735 21131346615 21135047389
21138745600 21142444825 21146143911 21149843181 21153543584 21157241829
21160938999 21164640352 21168340474 21172039741 21175737376 21179438179
21183134292 21186834299 21190533283 21194232004 21197928675 21201628387
21205328581 21209028505 21212727936 21216425405 21220123730 21223822246
21227522318 21231219969 21234919639 21238618340 21242315995 21246014143
21249714287 21253413343 21257110449 21260807657 21264505902 21268204584
21271904029 21275603074 21279302579 21283001372 21286699599 21290395709
21294092644 21297791527 21301489238 21305186990 21308886474 21312584954
21316283159 21319980476 21323680202 21327377269 21331074535 21334771571
21338470505 21342168792 21345867265 21349565230 21353262429 21356960402
21360657209 21364354011 21368052808 21371750316 21375447499 21379146525
21382843463 21386541246 21390242195 21393939693 21397635714 21401334428
21405032124 21408729507 21412425770 21416124265 21419821397 21423520414
21427218060 21430916606 21434612245 21438308145 21442005457 21445703596
21449399803 21453097679 21456794808 21460491932 21464189434 21467886788
21471584791 21475282563 21478980053 21482676317 21486372664 21490070415
21493766927 21497462418 21501159855 21504858258 21508557356 21512254256
21515951392 21519646593 21523344906 21527040121 21530734955 21534431167
21538127930 21541825048 21545520257 21549217790 21552915031 21556612745
21560308407 21564006374 21567703925 21571399262 21575095116 21578790809
21582488746 21586183174 21589879633 21593576306 21597273437 21600969847
21604667010 21608364896 21612062382 21615756844 21619453844 21623149145
21626845064 21630540124 21634235975 21637931252 21641626944 21645321553
21649018212 21652713649 21656409837 21660104093 21663799554 21667496361
21671190621 21674886296 21678583407 21682278901 21685975721 21689672269
21693369589 21697064410 21700758200 21704453667 21708150687 21711847341
21715541922 21719235250 21722929449 21726625750 21730321680 21734017870
21737713200 21741408509 21745105893 21748799616 21752493935 21756188792
21759883292 21763579830 21767274494 21770971111 21774667168 21778360653
21782054420 21785749254 21789443008 21793137870 21796832926 21800527812
21804223277 21807918334 21811612232 21815306500 21819002966 21822697552
21826391697 21830085821 21833779896 21837474433 21841169030 21844863511
21848558857 21852252997 21855946857 21859642881 21863337148 21867031308
21870726612 21874420302 21878114889 21881809767 21885504933 21889197908
21892891332 21896585678 21900279704 21903974098 21907668181 21911361584
21915056268 21918751765 21922445947 21926140369 21929835409 21933528739
21937223167 21940918039 21944613724 21948306983 21952000515 21955692300
21959385342 21963078388 21966770836 21970464565 21974159220 21977852315
21981544107 21985236998 21988931248 21992626736 21996320737 22000013939
22003708075 22007400392 22011094358 22014786391 22018479526 22022175562
22025868817 22029562383 22033256548 22036952580 22040645341 22044337868
22048030876 22051726463 22055419763 22059114337 22062808067 22066500809
22070195015 22073888383 22077581380 22081274678 22084968002 22088661745
22092353316 22096045543 22099738852 22103430619 22107124288 22110815637
22114509207 22118201602 22121894605 22125586510 22129277606 22132970705
22136663351 22140356462 22144050012 22147742472 22151434516 22155126628
22158819044 22162512555 22166206629 22169901060 22173593304 22177285216
22180977051 22184669611 22188361874 22192056009 22195748722 22199441476
22203133239 22206824946 22210517812 22214210706 22217904366 22221598020
22225290436 22228982630 22232674470 22236364748 22240057170 22243749351
22247438514 22251131067 22254822310 22258514549 22262206117 22265896978
22269587413 22273279968 22276970649 22280663439 22284355293 22288047003
22291740963 22295432815 22299125712 22302817768 22306509080 22310199900
22313891463 22317585414 22321277990 22324968392 22328660727 22332353397
22336044298 22339736527 22343427121 22347118867 22350811171 22354502483
22358193160 22361885741 22365576113 22369269521 22372959620 22376652247
22380343212 22384034506 22387725701 22391415264 22395106874 22398798903
22402488758 22406179060 22409871409 22413563709 22417253284 22420941286
22424632985 22428321089 22432012126 22435700197 22439390288 22443082242
22446774178 22450465292 22454155346 22457844663 22461536370 22465225967
22468916567 22472606903 22476294458 22479985135 22483675166 22487364172
22491053482 22494745165 22498435730 22502126667 22505817743 22509509009
22513198469 22516890008 22520578396 22524268430 22527957939 22531648208
22535338438 22539027110 22542716999 22546405693 22550095934 22553786371
22557475777 22561165393 22564856421 22568546002 22572237638 22575928352
22579618964 22583309508 22586999237 22590688901 22594378236 22598068391
22601760287 22605450162 22609141156 22612830613 22616519164 22620208353
22623898591 22627589340 22631278427 22634968355 22638655971 22642346589
22646035796 22649723967 22653414026 22657103992 22660793144 22664480992
22668171682 22671862109 22675550759 22679240034 22682929639 22686618297
22690309426 22694000132 22697688989 22701377548 22705067469 22708757057
22712447092 22716135699 22719824480 22723512993 22727200531 22730890669
22734577712 22738267484 22741955087 22745645032 22749333930 22753022062
22756710777 22760398238 22764087615 22767777230 22771465627 22775155919
22778844680 22782533648 22786222976 22789910337 22793597377 22797287382
22800975035 22804662899 22808351625 22812039185 22815726654 22819414163
22823102770 22826791281 22830478296 22834167239 22837856235 22841545394
22845231677 22848920281 22852609322 22856298023 22859987516 22863676819
22867365506 22871052021 22874739227 22878428512 22882119465 22885808515
22889495137 22893184521 22896872417 22900561331 22904248920 22907937321
22911624044 22915311801 22918998136 22922685995 22926373878 22930061630
22933747409 22937435370 22941122929 22944811012 22948499069 22952186403
22955875264 22959565056 22963253577 22966940709 22970629124 22974315990
22978002309 22981690077 22985376153 22989063068 22992750990 22996438806
23000126515 23003813972 23007501786 23011190910 23014875932 23018562870
23022250438 23025937992 23029627352 23033313160 23037000843 23040689915
23044376832 23048062986 23051750019 23055438272 23059124975 23062810969
23066499314 23070186453 23073873518 23077559883 23081245401 23084932264
23088618625 23092304001 23095990349 23099678134 23103364985 23107051863
23110737784 23114425019 23118111403 23121800245 23125486818 23129174045
23132859653 23136545372 23140228289 23143914885 23147602474 23151290297
23154975972 23158661943 23162347294 23166033352 23169720090 23173406244
23177093205 23180779546 23184466384 23188152154 23191838486 23195524382
23199211696 23202898483 23206585873 23210270789 23213955110 23217641693
23221328664 23225015234 23228700738 23232386167 23236070771 23239757429
23243443468 23247129211 23250816210 23254503165 23258188466 23261874119
23265558401 23269244677 23272931182 23276617645 23280300734 23283985120
23287669704 23291354825 23295040571 23298726464 23302410577 23306097549
23309782196 23313466584 23317152986 23320836287 23324519312 23328205013
23331891292 23335576149 23339262001 23342947453 23346631580 23350317669
23354002341 23357687881 23361373576 23365058922 23368744614 23372428129
23376112935 23379799984 23383484213 23387167405 23390851380 23394537367
23398220140 23401904888 23405591771 23409277671 23412962713 23416646263
23420330953 23424018232 23427703294 23431387436 23435072065 23438756960
23442443076 23446126541 23449810064 23453495402 23457180642 23460864383
23464547187 23468231639 23471916763 23475600350 23479284419 23482970976
23486654226 23490338677 23494022427 23497706451 23501390462 23505074325
23508759004 23512442545 23516126430 23519810488 23523494762 23527178446
23530864195 23534549041 23538232704 23541917006 23545599405 23549284336
23552969131 23556652725 23560337076 23564021859 23567705901 23571389653
23575074639 23578757488 23582441403 23586123625 23589807753 23593490514
23597173013 23600858165 23604541318 23608224091 23611907188 23615591857
23619276471 23622960798 23626644478 23630327649 23634011513 23637695023
23641378256 23645061945 23648746566 23652428199 23656112747 23659796362
23663481521 23667162634 23670845569 23674528546 23678212079 23681894210
23685577978 23689261554 23692945683 23696628658 23700311160 23703993824
23707675733 23711358450 23715043468 23718728117 23722410233 23726093758
23729776611 23733459092 23737141896 23740822755 23744505064 23748187889
23751871468 23755553830 23759236704 23762920868 23766603502 23770286244
23773968769 23777652510 23781335365 23785017343 23788698783 23792381363
23796065680 23799748768 23803431156 23807112354 23810792853 23814475735
23818158620 23821840071 23825523559 23829204711 23832885677 23836567181
23840248345 23843932043 23847614522 23851295385 23854978062 23858660243
23862340099 23866023761 23869706077 23873386528 23877068703 23880751635
23884435250 23888117432 23891799694 23895480924 23899162817 23902843079
23906524767 23910206853 23913889518 23917572726 23921255155 23924937052
23928619968 23932301272 23935981495 23939664214 23943347632 23947027702
23950710437 23954391696 23958073044 23961753712 23965434962 23969116205
23972797996 23976476886 23980157571 23983840105 23987522217 23991203401
23994884677 23998565951 24002249104 24005930180 24009612162 24013292115
24016972665 24020654336 24024336357 24028017622 24031697792 24035379028
24039060756 24042742672 24046423137 24050102635 24053784248 24057465004
24061145169 24064826068 24068507544 24072189213 24075869735 24079550424
24083230094 24086912451 24090593113 24094275182 24097956153 24101637437
24105317998 24108998915 24112681510 24116361852 24120041043 24123721050
24127401615 24131082335 24134763064 24138442625 24142123000 24145801576
24149482940 24153163424 24156844467 24160522923 24164202469 24167885729
24171566824 24175246185 24178928419 24182610104 24186291268 24189969935
24193651636 24197332955 24201012735 24204693696 24208373431 24212054789
24215734149 24219413783 24223094841 24226776165 24230456826 24234136180
24237816014 24241494609 24245173763 24248854816 24252535109 24256214060
24259894522 24263573569 24267253385 24270932884 24274611705 24278290975
24281970827 24285649068 24289328839 24293008454 24296688515 24300368644
24304047774 24307729079 24311408614 24315088498 24318766985 24322446172
24326125385 24329805242 24333484801 24337162999 24340841021 24344519272
24348198363 24351879070 24355557151 24359236351 24362915057 24366595945
24370275136 24373953749 24377632176 24381312546 24384991275 24388671637
24392349657 24396028679 24399706499 24403386370 24407065527 24410743202
24414421072 24418099228 24421778200 24425455694 24429134110 24432813290
24436492245 24440170727 24443849790 24447528968 24451208201 24454887075
24458565737 24462244487 24465925074 24469601730 24473280711 24476959703
24480636752 24484315753 24487995508 24491673823 24495351913 24499030438
24502709701 24506388664 24510067908 24513744815 24517424586 24521102440
24524782889 24528459813 24532137883 24535815138 24539493452 24543173981
24546851839 24550529806 24554208925 24557888549 24561566990 24565244433
24568922059 24572599191 24576276727 24579955576 24583633511 24587313363
24590988627 24594667677 24598345394 24602024150 24605702179 24609378632
24613059052 24616737547 24620416471 24624092331 24627769587 24631446465
24635125551 24638801480 24642478690 24646157245 24649834237 24653512804
24657190422 24660867140 24664544893 24668222154 24671897972 24675574967
24679252723 24682930550 24686608575 24690284689 24693962647 24697639702
24701317951 24704996453 24708671623 24712347872 24716025078 24719701833
24723378182 24727056087 24730734939 24734412663 24738090610 24741766695
24745443458 24749121429 24752798472 24756475126 24760151915 24763827371
24767504396 24771180907 24774857797 24778534246 24782211118 24785887585
24789564142 24793239748 24796915760 24800591110 24804269180 24807946474
24811622988 24815299574 24818977369 24822653241 24826329588 24830006460
24833681851 24837359767 24841036969 24844711848 24848387400 24852062893
24855739839 24859416581 24863092997 24866767985 24870446500 24874122882
24877798241 24881476441 24885153848 24888829531 24892505863 24896184305
24899861195 24903535344 24907208628 24910887814 24914563757 24918238554
24921912930 24925589920 24929266297 24932942889 24936620989 24940296986
24943972253 24947648522 24951325000 24955000361 24958676616 24962353442
24966028692 24969704484 24973379006 24977055046 24980730920 24984406554
24988083494 24991758798 24995435492 24999110668 25002785825 25006460640
25010136167 25013810870 25017485807 25021161557 25024837315 25028512072
25032189381 25035864127 25039538896 25043213316 25046888988 25050563816
25054239173 25057914414 25061589445 25065264667 25068939531 25072614748
25076287383 25079961391 25083637398 25087313237 25090987968 25094662748
25098338059 25102012193 25105689280 25109365023 25113038697 25116715643
25120389133 25124064322 25127737935 25131414118 25135087876 25138759775
25142434186 25146111307 25149786348 25153460525 25157133657 25160807630
25164482158 25168157503 25171829277 25175504914 25179180674 25182855105
25186530363 25190205759 25193881147 25197553752 25201225632 25204900747
25208576431 25212250637 25215924549 25219597588 25223271789 25226947634
25230623188 25234297588 25237971025 25241646521 25245320414 25248995904
25252668600 25256339345 25260015110 25263689306 25267363657 25271037498
25274711518 25278385629 25282061866 25285736614 25289411056 25293086729
25296759123 25300431685 25304105313 25307780301 25311452748 25315128954
25318803500 25322478112 25326152264 25329824423 25333498869 25337172425
25340844062 25344516608 25348192243 25351867666 25355539487 25359213220
25362887065 25366560563 25370233692 25373907822 25377581376 25381254604
25384928790 25388601898 25392276003 25395951147 25399623790 25403298026
25406970493 25410642447 25414317931 25417989492 25421663156 25425336811
25429009386 25432682159 25436355120 25440029167 25443700492 25447373633
25451046663 25454719597 25458394609 25462065737 25465739907 25469414382
25473086456 25476758616 25480431453 25484104937 25487777540 25491450515
25495123644 25498796656 25502470396 25506143397 25509815015 25513488400
25517160246 25520832222 25524504543 25528177870 25531850643 25535521714
25539194319 25542866735 25546539240 25550212322 25553884193 25557555390
25561229812 25564902261 25568573915 25572246643 25575919774 25579593240
25583264393 25586937020 25590608968 25594280530 25597952373 25601625502
25605297368 25608968544 25612639599 25616311376 25619984558 25623656923
25627329647 25631002824 25634677145 25638347930 25642019343 25645690987
25649362346 25653035148 25656706411 25660379399 25664051496 25667722668
25671393957 25675066079 25678737632 25682408278 25686079949 25689750460
25693423156 25697093513 25700767040 25704438648 25708110892 25711783909
25715455769 25719127466 25722800000 25726471963 25730143879 25733816321
25737487804 25741159650 25744831284 25748503168 25752174760 25755845593
25759518263 25763189947 25766859691 25770532410 25774202633 25777874625
25781545735 25785216362 25788886565 25792559154 25796231698 25799899952
25803570061 25807241200 25810910664 25814582138 25818252612 25821924721
25825595685 25829268475 25832940015 25836611666 25840282045 25843953822
25847623752 25851293059 25854967838 25858639227 25862311901 25865983587
25869654694 25873327694 25876997309 25880666668 25884335806 25888006608
25891679364 25895349108 25899019739 25902690318 25906361405 25910032738
25913703734 25917373166 25921042155 25924711449 25928383767 25932054255
25935724474 25939394041 25943064829 25946732739 25950403691 25954074070
25957744176 25961414424 25965084584 25968755243 25972424700 25976094116
25979763266 25983434243 25987104184 25990773939 25994444879 25998114221
26001784999 26005454103 26009124435 26012793776 26016463778 26020132160
26023802848 26027473228 26031143372 26034812919 26038481230 26042151614
26045823185 26049492144 26053161882 26056831007 26060500011 26064169027
26067838546 26071509546 26075181196 26078849863 26082519368 26086189778
26089859352 26093527399 26097197318 26100866823 26104535185 26108203720
26111872878 26115541084 26119209372 26122880012 26126548834 26130216799
26133887555 26137554513 26141223079 26144893902 26148562815 26152232377
26155902417 26159572219 26163240226 26166908437 26170579289 26174247433
26177916068 26181586196 26185256450 26188925512 26192595703 26196264025
26199932260 26203601176 26207269900 26210937826 26214607619 26218276481
26221944424 26225612869 26229282868 26232951311 26236619906 26240287368
26243956236 26247622902 26251294133 26254963532 26258632244 26262302456
26265969797 26269637876 26273308177 26276975917 26280643620 26284312258
26287979272 26291647376 26295316431 26298985877 26302654659 26306324231
26309992411 26313662811 26317331556 26321000990 26324666749 26328337073
26332005267 26335673709 26339342812 26343012156 26346681262 26350349878
26354018129 26357685212 26361352606 26365021027 26368689018 26372357829
26376027225 26379696633 26383368057 26387036952 26390705363 26394373055
26398040475 26401708056 26405375745 26409042069 26412710463 26416378177
26420045239 26423712871 26427380236 26431048465 26434717222 26438383866
26442051150 26445718189 26449385119 26453053277 26456723152 26460390946
26464058123 26467725064 26471392333 26475057427 26478725296 26482393773
26486061547 26489730581 26493397255 26497063597 26500730224 26504399590
26508065942 26511733490 26515398952 26519066692 26522734023 26526400662
26530069464 26533737159 26537404058 26541069599 26544736357 26548403664
26552071533 26555737732 26559403909 26563071288 26566738007 26570404596
26574073727 26577738537 26581406023 26585072985 26588742340 26592408985
26596075289 26599741256 26603407641 26607073738 26610742023 26614408771
26618075618 26621741515 26625408180 26629074467 26632741380 26636409149
26640077596 26643742815 26647407568 26651075215 26654741509 26658409018
26662075191 26665742669 26669408319 26673075568 26676741710 26680407810
26684074310 26687739123 26691405551 26695071595 26698738382 26702405879
26706073106 26709739631 26713405727 26717072414 26720739762 26724405487
26728073094 26731739176 26735404982 26739072453 26742738892 26746404387
26750070941 26753736744 26757403837 26761069760 26764737125 26768403590
26772070072 26775736347 26779400272 26783068165 26786733485 26790399788
26794064559 26797731256 26801394218 26805060870 26808725152 26812391608
26816056604 26819723773 26823390007 26827056467 26830722651 26834388411
26838054308 26841720448 26845384855 26849051891 26852717962 26856382699
26860050793 26863714116 26867379431 26871043512 26874708535 26878375514
26882040426 26885705801 26889370314 26893036877 26896703498 26900368346
26904033056 26907697515 26911362877 26915028533 26918692831 26922356980
26926022611 26929687161 26933350390 26937017262 26940681904 26944349198
26948011988 26951676019 26955341057 26959006195 26962670322 26966334250
26969998518 26973663977 26977328587 26980993980 26984658569 26988324108
26991989855 26995655069 26999319937 27002985477 27006650111 27010314356
27013979390 27017643289 27021307750 27024973796 27028638794 27032303101
27035968326 27039630303 27043296435 27046960437 27050626945 27054288426
27057950911 27061616316 27065279864 27068943659 27072606964 27076272004
27079936817 27083601416 27087266258 27090929368 27094592690 27098256763
27101920193 27105584794 27109248175 27112911617 27116575258 27120239009
27123902480 27127566067 27131231280 27134895434 27138558846 27142222757
27145885970 27149549403 27153213974 27156878527 27160541304 27164205753
27167867792 27171533469 27175197044 27178860706 27182527208 27186192233
27189855048 27193518399 27197181436 27200845445 27204508590 27208172018
27211833579 27215497902 27219164125 27222828562 27226491450 27230153640
27233815968 27237481389 27241145592 27244810014 27248473912 27252137956
27255800029 27259464992 27263126865 27266790905 27270454628 27274117472
27277781286 27281442369 27285106289 27288769830 27292432536 27296095394
27299758427 27303421639 27307083951 27310746651 27314408832 27318071895
27321736720 27325401244 27329064360 27332727779 27336391957 27340055006
27343718025 27347381355 27351044777 27354708605 27358370133 27362033272
27365695479 27369358470 27373021175 27376683408 27380345989 27384008069
27387672134 27391337130 27394999474 27398661671 27402324946 27405986845
27409649796 27413312573 27416974273 27420637012 27424298179 27427961339
27431623818 27435284429 27438947536 27442611817 27446276410 27449937603
27453600194 27457261388 27460925110 27464588723 27468251016 27471911246
27475573122 27479235823 27482899723 27486562374 27490223598 27493886750
27497548971 27501211759 27504874220 27508535894 27512198518 27515862917
27519524951 27523187867 27526852005 27530512615 27534175087 27537837333
27541499201 27545159690 27548821553 27552483652 27556145612 27559808751
27563468434 27567131025 27570792279 27574455235 27578116540 27581778375
27585442786 27589103083 27592764211 27596424393 27600087251 27603749917
27607411998 27611073116 27614733085 27618395668 27622057759 27625719325
27629379733 27633042284 27636705748 27640367020 27644028026 27647690475
27651350911 27655011369 27658673979 27662334152 27665995027 27669656786
27673317358 27676978608 27680640927 27684301349 27687962745 27691625762
27695287470 27698949694 27702610680 27706271808 27709935060 27713595403
27717256003 27720916133 27724577646 27728240157 27731901262 27735562108
27739224586 27742884828 27746544147 27750206809 27753867326 27757530399
27761192845 27764852804 27768513487 27772173771 27775836038 27779496351
27783156146 27786816261 27790477869 27794137518 27797798066 27801459452
27805119857 27808780657 27812440892 27816101574 27819762470 27823424302
27827085131 27830746308 27834406707 27838068470 27841728642 27845388091
27849049194 27852708239 27856367298 27860028861 27863690273 27867351181
27871011857 27874672744 27878331621 27881991530 27885652015 27889312533
27892972393 27896633272 27900292625 27903951935 27907610004 27911270767
27914932222 27918591987 27922251840 27925913870 27929573481 27933232566
27936893546 27940554315 27944212944 27947874099 27951531881 27955192207
27958851672 27962512195 27966171553 27969832744 27973492688 27977153002
27980811670 27984472491 27988132823 27991791758 27995453629 27999114408
28002775102 28006433223 28010093165 28013753184 28017412099 28021071422
28024730977 28028388594 28032049672 28035708600 28039370067 28043029168
28046688076 28050346311 28054005650 28057665941 28061325534 28064984629
28068643401 28072305147 28075965515 28079626081 28083285883 28086945944
28090602591 28094262051 28097923299 28101580669 28105239253 28108900150
28112557458 28116215701 28119874365 28123534263 28127193789 28130852193
28134510924 28138170878 28141829163 28145488230 28149147782 28152804149
28156462833 28160123895 28163783340 28167440923 28171100828 28174759905
28178419188 28182076634 28185735067 28189395176 28193055123 28196715032
28200372788 28204031214 28207691501 28211350720 28215009022 28218667486
28222326220 28225983839 28229643454 28233302377 28236960443 28240618926
28244278118 28247938803 28251597071 28255257131 28258916146 28262574570
28266234004 28269893022 28273552460 28277211417 28280869354 28284527068
28288185484 28291843547 28295500828 28299158640 28302816408 28306475069
28310130998 28313790892 28317448378 28321107356 28324764187 28328421834
28332079505 28335737774 28339395026 28343053481 28346712916 28350372145
28354028758 28357687480 28361347655 28365005734 28368664604 28372321842
28375980243 28379637693 28383295848 28386952955 28390612560 28394269722
28397927650 28401585083 28405241904 28408900172 28412556424 28416214421
28419873439 28423530579 28427188241 28430845196 28434503252 28438160404
28441817755 28445476158 28449135781 28452791901 28456450343 28460106639
28463764443 28467421494 28471080892 28474737529 28478396004 28482054133
28485711225 28489368783 28493025761 28496683241 28500340247 28503998914
28507654396 28511311218 28514968374 28518625519 28522283112 28525940526
28529596541 28533253984 28536912006 28540569705 28544226686 28547884556
28551541986 28555198459 28558855633 28562512861 28566170722 28569828774
28573485799 28577143268 28580800750 28584455903 28588112446 28591770148
28595426107 28599084377 28602740976 28606398432 28610052351 28613707900
28617364150 28621020100 28624677915 28628333169 28631989574 28635645824
28639302519 28642959076 28646616342 28650272182 28653929121 28657585915
28661242765 28664899744 28668555677 28672211778 28675867296 28679524357
28683181987 28686837447 28690494570 28694150781 28697805656 28701461800
28705119381 28708775075 28712430196 28716086919 28719742639 28723400052
28727056079 28730711591 28734366765 28738021934 28741678374 28745334665
28748992511 28752647901 28756304437 28759960550 28763616392 28767273539
28770927227 28774584042 28778240983 28781896051 28785551021 28789207381
28792864067 28796519622 28800175780 28803832137 28807488355 28811145009
28814799676 28818455469 28822110642 28825766758 28829422120 28833076767
28836732395 28840388783 28844043371 28847699664 28851353968 28855009226
28858664055 28862317742 28865973419 28869630672 28873286890 28876942097
28880598062 28884255002 28887910760 28891565862 28895221608 28898875153
28902529702 28906186285 28909841107 28913496626 28917153077 28920808292
28924462936 28928118591 28931774924 28935430400 28939084831 28942740175
28946394642 28950050000 28953705108 28957359497 28961015285 28964672017
28968327405 28971981991 28975636377 28979290472 28982945388 28986598398
28990251272 28993906005 28997560619 29001216386 29004870905 29008527758
29012181496 29015836626 29019492025 29023146752 29026801927 29030457205
29034111321 29037765464 29041418900 29045073979 29048727429 29052381796
29056037925 29059693480 29063348168 29067004631 29070660046 29074314378
29077968233 29081622121 29085276490 29088930476 29092585356 29096239955
29099893921 29103547767 29107200897 29110854807 29114510066 29118163349
29121818803 29125473354 29129127439 29132781402 29136435781 29140089263
29143742643 29147396766 29151051754 29154708744 29158362563 29162017532
29165671744 29169326723 29172982778 29176635823 29180287921 29183942430
29187596097 29191248685 29194903302 29198556758 29202212056 29205867241
29209521069 29213174986 29216829979 29220481672 29224135835 29227789408
29231443159 29235096128 29238750117 29242404225 29246057094 29249711430
29253365102 29257019809 29260672463 29264326182 29267978739 29271632416
29275285701 29278938908 29282593611 29286247039 29289902034 29293555609
29297208258 29300861749 29304515939 29308169854 29311824451 29315479284
29319131717 29322787455 29326440358 29330092957 29333743743 29337395317
29341048830 29344703360 29348356220 29352010127 29355663690 29359316194
29362969598 29366622147 29370277167 29373931347 29377583135 29381235378
29384888077 29388540068 29392192387 29395843832 29399495902 29403150631
29406803035 29410456668 29414109972 29417761942 29421417144 29425069642
29428722753 29432374512 29436026578 29439678570 29443329761 29446982810
29450637487 29454289349 29457941397 29461594178 29465246842 29468898156
29472550940 29476204907 29479857969 29483509622 29487162233 29490814798
29494468308 29498121072 29501772303 29505423961 29509075932 29512727853
29516381417 29520033508 29523686553 29527338831 29530991715 29534643437
29538296463 29541949198 29545603627 29549256545 29552909044 29556560225
29560213729 29563866634 29567518240 29571168665 29574822426 29578473101
29582127334 29585779068 29589430900 29593083526 29596734471 29600387123
29604037003 29607689193 29611342201 29614994855 29618646305 29622297360
29625950220 29629604401 29633255396 29636907042 29640560235 29644210775
29647863110 29651514578 29655169106 29658818938 29662469170 29666121224
29669772017 29673424092 29677075390 29680728915 29684381502 29688032248
29691681305 29695333379 29698984366 29702636308 29706288801 29709939173
29713591568 29717245376 29720895695 29724546742 29728198111 29731848028
29735497687 29739148621 29742801243 29746451147 29750101363 29753752314
29757403113 29761055524 29764703491 29768354804 29772004614 29775654391
29779304490 29782955758 29786606676 29790257027 29793910044 29797560502
29801210500 29804861736 29808512312 29812164221 29815814962 29819466141
29823116490 29826767249 29830416888 29834067262 29837720501 29841370969
29845022340 29848673255 29852324270 29855976018 29859625511 29863275933
29866928535 29870579216 29874229306 29877879265 29881528485 29885178439
29888829406 29892479406 29896131167 29899782731 29903433677 29907086406
29910736599 29914386925 29918037327 29921687580 29925337909 29928988006
29932637609 29936287779 29939938310 29943588924 29947239616 29950888978
29954538728 29958188430 29961839943 29965488261 29969137409 29972788378
29976439588 29980089099 29983739296 29987389538 29991038883 29994690017
29998340516 30001989870 30005641592 30009290835 30012941452 30016591859
30020243395 30023894129 30027544626 30031195264 30034842941 30038490879
30042143151 30045793529 30049443274 30053094294 30056744346 30060394652
30064046569 30067696649 30071345515 30074995940 30078644449 30082293236
30085943068 30089593890 30093245605 30096894871 30100544734 30104193846
30107843898 30111493680 30115144007 30118794539 30122443422 30126092697
30129741486 30133391141 30137040628 30140688897 30144338489 30147988340
30151637753 30155288166 30158935695 30162586011 30166235317 30169883820
30173532573 30177181662 30180829963 30184482778 30188131869 30191782278
30195431218 30199080086 30202725636 30206374915 30210023927 30213674406
30217323544 30220973343 30224622941 30228272474 30231922573 30235571247
30239220959 30242870526 30246520245 30250168633 30253818650 30257465951
30261115456 30264763376 30268411604 30272060064 30275709026 30279357703
30283005388 30286653149 30290302838 30293951144 30297598351 30301245131
30304894464 30308542933 30312192105 30315842229 30319490511 30323138489
30326790010 30330435900 30334085862 30337734654 30341383527 30345032735
30348681176 30352330728 30355978514 30359628490 30363279186 30366928185
30370576101 30374224684 30377872567 30381520774 30385169457 30388816801
30392465080 30396112791 30399760823 30403408333 30407056712 30410704989
30414353414 30418001706 30421648160 30425297283 30428947015 30432594339
30436241951 30439891077 30443538159 30447186598 30450831897 30454479513
30458127565 30461773634 30465422693 30469071179 30472719498 30476366323
30480013574 30483661269 30487309395 30490956970 30494606133 30498253976
30501902822 30505552291 30509201500 30512848736 30516496610 30520143904
30523791785 30527438326 30531086660 30534735003 30538382569 30542030538
30545680318 30549326656 30552974164 30556620235 30560268351 30563918275
30567565919 30571214595 30574862398 30578509637 30582158213 30585805766
30589453396 30593101287 30596747036 30600393762 30604042200 30607688279
30611336991 30614984104 30618631412 30622278502 30625924422 30629572089
30633220612 30636866959 30640513895 30644159446 30647808551 30651454249
30655099871 30658747224 30662395327 30666044135 30669689146 30673337297
30676984583 30680632366 30684280632 30687928097 30691576145 30695221544
30698868102 30702514631 30706162642 30709808752 30713455460 30717103427
30720750928 30724396836 30728044492 30731692171 30735337755 30738983005
30742631630 30746279190 30749926633 30753574093 30757219963 30760865269
30764512895 30768160602 30771807570 30775454984 30779100698 30782747622
30786394942 30790041537 30793689466 30797333863 30800982485 30804627902
30808274466 30811923638 30815570466 30819215522 30822862795 30826509090
30830156041 30833801784 30837446707 30841091769 30844739182 30848385228
30852030629 30855678898 30859324448 30862971206 30866618043 30870264276
30873909230 30877554367 30881199414 30884845821 30888491101 30892136277
30895783037 30899429501 30903074721 30906722079 30910367972 30914015152
30917659306 30921305538 30924951406 30928598948 30932246093 30935891395
30939537972 30943183432 30946829393 30950474727 30954120880 30957766360
30961411323 30965054637 30968701434 30972346855 30975995280 30979642046
30983288092 30986934039 30990579624 30994225329 30997870814 31001516956
31005163102 31008809299 31012456293 31016101517 31019747259 31023393549
31027038031 31030684957 31034328484 31037973431 31041618544 31045266043
31048909736 31052554711 31056200511 31059847038 31063491612 31067135683
31070780007 31074427383 31078073373 31081717740 31085363185 31089008805
31092653265 31096299955 31099945302 31103590269 31107235351 31110880334
31114527181 31118173577 31121816192 31125459828 31129104701 31132749639
31136395024 31140040437 31143686252 31147331213 31150975249 31154619083
31158264469 31161909880 31165553535 31169199306 31172844456 31176487995
31180134057 31183777970 31187421850 31191065456 31194710629 31198354106
31201998799 31205645190 31209288454 31212934481 31216578359 31220223572
31223868150 31227512002 31231156785 31234801412 31238446364 31242090092
31245734701 31249379057 31253023186 31256667480 31260313295 31263956843
31267601115 31271243958 31274889108 31278534142 31282177055 31285823042
31289469131 31293113760 31296757589 31300400754 31304044138 31307689406
31311334818 31314979788 31318624138 31322269398 31325913756 31329556356
31333199903 31336844981 31340487502 31344132793 31347778191 31351422304
31355065376 31358707629 31362351839 31365996441 31369640216 31373284476
31376928638 31380572603 31384216405 31387859990 31391502599 31395144838
31398790686 31402434147 31406076609 31409719479 31413363093 31417006099
31420649392 31424294185 31427937828 31431581322 31435225918 31438869800
31442515329 31446159587 31449803696 31453447990 31457089198 31460732031
31464374408 31468018447 31471662128 31475305152 31478950468 31482591954
31486234616 31489877722 31493522597 31497165063 31500809158 31504452965
31508098069 31511740791 31515383718 31519026556 31522670919 31526314238
31529956587 31533600239 31537241958 31540885407 31544526761 31548170743
31551814101 31555457177 31559100981 31562743081 31566384982 31570026937
31573670772 31577312989 31580956765 31584598249 31588243263 31591888335
31595531447 31599173648 31602817699 31606459952 31610105477 31613748475
31617391902 31621032574 31624675536 31628316761 31631957853 31635600899
31639242721 31642885934 31646529080 31650172833 31653814246 31657457320
31661099776 31664742953 31668385149 31672029255 31675673176 31679315513
31682958980 31686601220 31690243653 31693885977 31697527943 31701171132
31704814090 31708456436 31712100332 31715744460 31719383301 31723027162
31726669623 31730312098 31733955047 31737598363 31741241166 31744883640
31748525283 31752167155 31755809480 31759449752 31763094431 31766735636
31770378770 31774020082 31777662825 31781303072 31784945178 31788587613
31792227130 31795870146 31799512115 31803155126 31806798344 31810438012
31814081183 31817724146 31821365972 31825007639 31828648386 31832288489
31835929827 31839570891 31843212709 31846856296 31850498226 31854140594
31857781213 31861423567 31865067196 31868708386 31872352219 31875994858
31879636268 31883277880 31886920998 31890562490 31894203067 31897846166
31901486801 31905128490 31908770435 31912411768 31916053836 31919695049
31923338251 31926980295 31930621690 31934262300 31937902677 31941543882
31945186475 31948826657 31952467200 31956106869 31959749933 31963391565
31967034161 31970674276 31974315330 31977958146 31981600105 31985241300
31988881868 31992523436 31996163734 31999803815 32003444497 32007083953
32010726142 32014366696 32018008179 32021649927 32025290966 32028931100
32032574113 32036214406 32039855615 32043496725 32047138158 32050779854
32054420999 32058062716 32061703305 32065345379 32068985039 32072625488
32076265392 32079907690 32083549782 32087192297 32090832337 32094472008
32098110480 32101752797 32105393162 32109034313 32112674297 32116314519
32119954559 32123593686 32127234729 32130876799 32134517388 32138157803
32141800978 32145441126 32149082498 32152721531 32156362944 32160004140
32163645177 32167285752 32170925621 32174567071 32178207461 32181847420
32185488153 32189127316 32192766794 32196407691 32200050158 32203690440
32207329778 32210970185 32214610268 32218251401 32221890714 32225530823
32229171069 32232811684 32236452119 32240091510 32243730563 32247370795
32251010823 32254650702 32258290581 32261932296 32265571835 32269214245
32272854180 32276494194 32280132991 32283773955 32287414409 32291055706
32294694032 32298332999 32301973894 32305611599 32309249372 32312888503
32316528349 32320167311 32323807834 32327447337 32331085861 32334727173
32338366368 32342005902 32345643738 32349285487 32352925500 32356564775
32360203128 32363842848 32367482190 32371121515 32374760670 32378400709
32382041653 32385680788 32389321153 32392960618 32396600499 32400239623
32403878455 32407517263 32411158011 32414798031 32418438631 32422077744
32425717506 32429358491 32432996664 32436635929 32440275804 32443914630
32447552055 32451191450 32454829539 32458469878 32462111089 32465750916
32469391887 32473032275 32476671947 32480311318 32483952778 32487592091
32491231051 32494870499 32498509582 32502147376 32505787564 32509425954
32513065485 32516704875 32520343224 32523984208 32527622185 32531261049
32534899635 32538538286 32542175851 32545815109 32549453638 32553092060
32556729787 32560368144 32564006006 32567644448 32571284106 32574922582
32578561632 32582200228 32585838205 32589477904 32593117005 32596754344
32600393046 32604031460 32607669452 32611307970 32614946195 32618584267
32622222212 32625860219 32629498213 32633136474 32636773250 32640411700
32644050214 32647690259 32651328514 32654967672 32658604311 32662241676
32665880612 32669520458 32673158997 32676797924 32680436360 32684073850
32687711567 32691350652 32694989334 32698629645 32702268956 32705908011
32709546667 32713187644 32716826765 32720464192 32724100985 32727741239
32731379595 32735016511 32738654208 32742292126 32745930883 32749569441
32753207418 32756843946 32760482035 32764120384 32767756562 32771393205
32775030589 32778667639 32782304813 32785942820 32789582392 32793218454
32796856201 32800492580 32804127703 32807765746 32811403168 32815041060
32818677600 32822317009 32825954927 32829592384 32833230188 32836868683
32840507293 32844145054 32847783971 32851421356 32855059156 32858697131
32862335358 32865973639 32869609833 32873247278 32876885894 32880523781
32884160328 32887798458 32891437535 32895074681 32898710780 32902347930
32905986414 32909623793 32913261046 32916897553 32920534657 32924172970
32927809268 32931447930 32935085948 32938724829 32942360168 32945997965
32949637007 32953276574 32956913163 32960550558 32964185886 32967822605
32971460087 32975097998 32978733995 32982370193 32986009052 32989645231
32993282217 32996919273 33000557281 33004193744 33007830429 33011468233
33015105225 33018741722 33022378858 33026015030 33029652691 33033288732
33036926810 33040564282 33044201145 33047837143 33051474139 33055112892
33058750760 33062387799 33066023845 33069661495 33073297681 33076936012
33080573244 33084208995 33087845475 33091481969 33095118197 33098753140
33102387924 33106023739 33109660831 33113294562 33116930362 33120567118
33124203313 33127839792 33131477527 33135114952 33138749679 33142386315
33146023280 33149658848 33153295331 33156930709 33160567838 33164203572
33167838911 33171474920 33175109835 33178747681 33182383162 33186019848
33189656223 33193292531 33196928678 33200564813 33204201920 33207838797
33211474235 33215112228 33218748079 33222384945 33226020462 33229657361
33233292910 33236928625 33240566591 33244203426 33247838412 33251474290
33255109885 33258745742 33262380250 33266016666 33269652449 33273289217
33276924825 33280558932 33284194357 33287830698 33291467377 33295103051
33298740897 33302377943 33306013405 33309648961 33313285236 33316919793
33320556045 33324192355 33327829662 33331464696 33335098367 33338733328
33342368020 33346005736 33349642039 33353277237 33356913486 33360547765
33364183576 33367818309 33371453993 33375090324 33378724108 33382359661
33385994030 33389629601 33393265290 33396898687 33400532802 33404168644
33407804763 33411441711 33415076900 33418709925 33422344155 33425977622
33429613538 33433250281 33436886080 33440521101 33444156420 33447791118
33451424691 33455059133 33458693697 33462328801 33465962613 33469598976
33473236185 33476871002 33480506346 33484140227 33487776318 33491411356
33495045264 33498679094 33502313055 33505947321 33509581303 33513215190
33516849876 33520485283 33524119707 33527754878 33531391696 33535028037
33538663642 33542297988 33545932933 33549568506 33553202533 33556836885
33560471208 33564105566 33567739451 33571375481 33575011611 33578647487
33582281652 33585914951 33589551364 33593186663 33596820471 33600453868
33604088322 33607720509 33611354464 33614989832 33618624982 33622257965
33625893704 33629527950 33633161682 33636795161 33640429721 33644064151
33647699312 33651334200 33654970246 33658603508 33662236858 33665870935
33669505532 33673139750 33676773098 33680407325 33684043746 33687677878
33691311191 33694945241 33698579712 33702212067 33705844613 33709480073
33713114449 33716748308 33720384122 33724016814 33727651051 33731286603
33734920076 33738553534 33742187662 33745821295 33749454948 33753088949
33756723928 33760356550 33763990756 33767623401 33771254979 33774888583
33778523273 33782157278 33785790319 33789424370 33793058091 33796690429
33800324303 33803958785 33807591428 33811225254 33814858883 33818491754
33822125524 33825758162 33829390976 33833025000 33836657550 33840290590
33843924746 33847559143 33851193132 33854825661 33858458010 33862092393
33865727406 33869359184 33872992254 33876625064 33880259322 33883892612
33887525387 33891159452 33894793008 33898426620 33902060487 33905695109
33909326617 33912960103 33916593263 33920225502 33923856916 33927492566
33931125759 33934757206 33938391629 33942025245 33945658057 33949291891
33952926181 33956557915 33960190526 33963822909 33967456660 33971089765
33974721952 33978355305 33981987586 33985620859 33989254059 33992884304
33996519750 34000154550 34003786671 34007420053 34011053009 34014686609
34018319794 34021950465 34025584265 34029217296 34032850707 34036483431
34040117085 34043750376 34047381735 34051016284 34054648259 34058280895
34061914508 34065549164 34069182284 34072815815 34076446728 34080079304
34083710068 34087343639 34090976323 34094608311 34098240575 34101873113
34105505041 34109137808 34112772444 34116404552 34120036643 34123667722
34127298541 34130931586 34134563671 34138195022 34141826220 34145458994
34149092748 34152724370 34156353028 34159986555 34163618230 34167251831
34170883463 34174516418 34178146018 34181779033 34185411916 34189044347
34192675565 34196307180 34199938879 34203571910 34207201937 34210834248
34214467200 34218099600 34221732034 34225363963 34228997064 34232628657
34236262184 34239893356 34243522942 34247155866 34250787694 34254419659
34258053167 34261684293 34265317378 34268949438 34272580256 34276211310
34279845271 34283476803 34287109149 34290741081 34294373603 34298006892
34301638520 34305269103 34308901234 34312533514 34316164853 34319795919
34323429841 34327059673 34330692713 34334323554 34337953095 34341584742
34345216400 34348846686 34352477558 34356109154 34359741439 34363370911
34367003067 34370634085 34374264989 34377897240 34381529837 34385160184
34388790803 34392422375 34396054778 34399686407 34403316112 34406946774
34410576808 34414207939 34417839423 34421471519 34425102644 34428732169
34432364213 34435994127 34439627001 34443257157 34446887200 34450518184
34454150277 34457780398 34461412434 34465043717 34468674876 34472305724
34475936623 34479566401 34483198942 34486831695 34490462710 34494094716
34497726283 34501356799 34504988496 34508618642 34512250055 34515880981
34519511234 34523141801 34526772403 34530400882 34534031763 34537661917
34541291434 34544923111 34548552638 34552182812 34555816174 34559445865
34563076053 34566707043 34570336728 34573967348 34577597902 34581227727
34584857650 34588487790 34592118835 34595750655 34599382162 34603013360
34606642849 34610272612 34613902337 34617534322 34621164703 34624794753
34628424954 34632057329 34635689069 34639318868 34642949824 34646580261
34650211166 34653842606 34657472299 34661103886 34664733740 34668365717
34671997375 34675627779 34679260130 34682891418 34686520407 34690149853
34693779638 34697408687 34701038155 34704668365 34708300245 34711929687
34715560217 34719190045 34722819931 34726449714 34730079373 34733708466
34737339663 34740968550 34744598869 34748229290 34751858249 34755487987
34759117006 34762748712 34766377806 34770008767 34773640260 34777270250
34780898836 34784527501 34788157101 34791786581 34795414764 34799044743
34802674523 34806302803 34809932576 34813562501 34817193177 34820822433
34824452456 34828081771 34831711446 34835342248 34838972513 34842600940
34846230384 34849859206 34853488287 34857117089 34860748736 34864376623
34868005190 34871634235 34875263885 34878892662 34882522092 34886148649
34889778705 34893408199 34897037041 34900665911 34904294912 34907924494
34911554587 34915183664 34918814576 34922444312 34926073775 34929704143
34933335261 34936964409 34940592534 34944222353 34947851983 34951480987
34955108942 34958739124 34962367100 34965996068 34969625229 34973253951
34976882931 34980510232 34984139347 34987768921 34991397278 34995026493
34998655398 35002284952 35005913674 35009541964 35013168149 35016797216
35020426702 35024054783 35027683205 35031311827 35034940736 35038568859
35042196447 35045824073 35049454867 35053084132 35056712883 35060342628
35063972592 35067600368 35071228608 35074857330 35078487216 35082117734
35085746450 35089374937 35093003733 35096632723 35100262032 35103889813
35107518108 35111145227 35114773574 35118401778 35122030146 35125659056
35129286689 35132912436 35136542181 35140170808 35143798467 35147427265
35151056228 35154684106 35158313320 35161942146 35165571635 35169200748
35172827787 35176456849 35180083446 35183711175 35187339822 35190968769
35194596904 35198225189 35201853945 35205482031 35209111033 35212740002
35216369582 35219995653 35223622280 35227250650 35230879292 35234507575
35238136793 35241763764 35245391638 35249019806 35252646328 35256274036
35259903167 35263529839 35267155504 35270782505 35274410186 35278037942
35281666897 35285294771 35288924350 35292551381 35296178010 35299804889
35303433671 35307061346 35310689886 35314318189 35317947215 35321574626
35325202063 35328829984 35332457533 35336083785 35339712001 35343338601
35346966598 35350592059 35354220731 35357846651 35361473326 35365101962
35368728188 35372354205 35375983122 35379609272 35383237354 35386865849
35390491330 35394119758 35397746609 35401375995 35405003726 35408630584
35412257875 35415886175 35419515729 35423141994 35426771186 35430398960
35434025822 35437652628 35441280786 35444908382 35448536790 35452165017
35455793868 35459421775 35463049142 35466674593 35470300778 35473926086
35477552298 35481180307 35484806663 35488434948 35492061002 35495689349
35499315828 35502943283 35506568845 35510194423 35513821617 35517448870
35521076796 35524703209 35528328748 35531956121 35535582127 35539209920
35542836740 35546464701 35550092043 35553719225 35557345624 35560972435
35564599349 35568226347 35571855103 35575482704 35579111236 35582737505
35586362440 35589989289 35593616507 35597244160 35600870276 35604497429
35608124688 35611751197 35615377684 35619002179 35622629859 35626257017
35629883646 35633509830 35637135880 35640762739 35644388268 35648013768
35651641562 35655266596 35658893529 35662521673 35666147884 35669774730
35673402082 35677029311 35680653347 35684279384 35687907171 35691535365
35695161547 35698787408 35702412897 35706040963 35709665518 35713292394
35716919207 35720544425 35724169903 35727795118 35731421462 35735045950
35738673276 35742298807 35745926028 35749553115 35753179752 35756806919
35760433167 35764059561 35767683716 35771307934 35774933963 35778559999
35782187700 35785812139 35789438393 35793064734 35796689285 35800316419
35803940259 35807565722 35811191587 35814816590 35818439632 35822065841
35825693004 35829319462 35832942642 35836569043 35840195998 35843822230
35847447038 35851071038 35854697303 35858322214 35861947915 35865574735
35869201871 35872826381 35876452850 35880077219 35883701781 35887329355
35890954579 35894581844 35898207236 35901832571 35905457366 35909084253
35912707730 35916335354 35919961872 35923587749 35927213517 35930839835
35934466508 35938090235 35941716382 35945341572 35948965601 35952589282
35956214881 35959839872 35963465648 35967090913 35970715379 35974340565
35977966178 35981591992 35985218015 35988842517 35992466423 35996092415
35999716862 36003341117 36006966529 36010591219 36014214620 36017839043
36021464276 36025088829 36028712702 36032337814 36035963304 36039589179
36043211476 36046837534 36050463518 36054088618 36057715143 36061340001
36064966031 36068590169 36072215620 36075841212 36079466640 36083092048
36086715660 36090339127 36093963748 36097587466 36101211538 36104836220
36108459925 36112082786 36115706658 36119332571 36122957220 36126581935
36130207455 36133832033 36137457331 36141084215 36144709801 36148333634
36151958181 36155582602 36159205628 36162829509 36166453740 36170078354
36173704275 36177326750 36180952450 36184575924 36188198847 36191822461
36195446839 36199071262 36202694461 36206320392 36209944028 36213568045
36217193416 36220816835 36224439858 36228064724 36231687674 36235311890
36238936331 36242560482 36246183693 36249808246 36253433396 36257058141
36260681938 36264306073 36267931150 36271554850 36275177935 36278803132
36282427464 36286052062 36289676146 36293299649 36296924899 36300548978
36304172914 36307798806 36311423193 36315047440 36318669451 36322291204
36325916326 36329538868 36333162315 36336785727 36340409436 36344033659
36347656518 36351280013 36354904585 36358529117 36362151488 36365775077
36369399082 36373022110 36376646776 36380272429 36383896780 36387520688
36391143319 36394767037 36398391104 36402014820 36405639226 36409262195
36412886543 36416509873 36420132578 36423757032 36427380628 36431003991
36434627732 36438251477 36441875540 36445497287 36449121225 36452744414
36456367459 36459989182 36463611162 36467233493 36470857557 36474479612
36478101187 36481724855 36485346872 36488969713 36492592971 36496216812
36499839697 36503463311 36507086979 36510710031 36514330483 36517953694
36521577782 36525200107 36528823885 36532444773 36536069271 36539693578
36543316755 36546940256 36550562951 36554187702 36557810409 36561433442
36565056569 36568678846 36572301331 36575924732 36579547788 36583169933
36586792020 36590414812 36594036242 36597660128 36601284196 36604905634
36608528422 36612151418 36615773652 36619396369 36623018512 36626642064
36630265010 36633887928 36637510655 36641133818 36644756684 36648379395
36652000710 36655623629 36659245577 36662866894 36666490274 36670112656
36673736326 36677359122 36680981993 36684604345 36688226649 36691851154
36695474683 36699097062 36702719691 36706342292 36709963876 36713586842
36717210440 36720831947 36724455556 36728076323 36731698091 36735320219
36738941969 36742565310 36746188895 36749810213 36753432290 36757054529
36760676061 36764298824 36767922012 36771547023 36775167930 36778788994
36782411267 36786032594 36789654445 36793277897 36796900337 36800522849
36804146334 36807766808 36811388517 36815008661 36818630117 36822251214
36825875527 36829498847 36833121198 36836742080 36840363941 36843984584
36847605871 36851226409 36854849181 36858470771 36862092265 36865713011
36869333986 36872957073 36876578113 36880201106 36883821436 36887443015
36891064322 36894686170 36898308739 36901931078 36905554915 36909173468
36912795251 36916418304 36920040385 36923661577 36927282034 36930904298
36934526434 36938149003 36941770748 36945391664 36949011994 36952633760
36956255372 36959876310 36963497176 36967119135 36970739507 36974361722
36977982998 36981604747 36985227649 36988848515 36992470398 36996090729
36999711104 37003332271 37006952852 37010573281 37014196683 37017816700
37021437797 37025059437 37028682669 37032303918 37035923880 37039544203
37043166744 37046787095 37050407133 37054028914 37057650705 37061271115
37064891114 37068512411 37072132509 37075753709 37079375019 37082997133
37086619574 37090241378 37093862262 37097484104 37101104893 37104726786
37108347439 37111968779 37115590207 37119209915 37122831092 37126451274
37130073647 37133693683 37137316419 37140937146 37144557195 37148179363
37151798832 37155417958 37159038803 37162660811 37166280353 37169903270
37173523683 37177144753 37180764368 37184383854 37188004059 37191623802
37195244986 37198866741 37202488595 37206108749 37209729233 37213348421
37216970500 37220590356 37224212349 37227833488 37231455172 37235076752
37238695252 37242314738 37245934597 37249552832 37253174001 37256794727
37260415145 37264035325 37267655592 37271273673 37274893090 37278514227
37282134027 37285754646 37289374759 37292993671 37296612983 37300233897
37303855151 37307474859 37311096985 37314715416 37318335595 37321955467
37325577201 37329195927 37332816216 37336437716 37340057007 37343677470
37347297617 37350919888 37354540193 37358160525 37361779348 37365399860
37369019597 37372639900 37376259424 37379877703 37383498902 37387118373
37390737741 37394356452 37397977582 37401597804 37405218560 37408840268
37412459582 37416078414 37419697784 37423319464 37426938725 37430559245
37434179486 37437799509 37441418835 37445037113 37448654503 37452275197
37455896390 37459516336 37463136506 37466755391 37470374063 37473996154
37477614084 37481235277 37484854462 37488473986 37492093769 37495713086
37499333229 37502950154 37506571625 37510192653 37513810500 37517429964
37521047621 37524667046 37528288793 37531906881 37535526279 37539146191
37542765714 37546385077 37550003205 37553622977 37557243073 37560861136
37564479874 37568099515 37571719879 37575339746 37578959237 37582577976
37586196162 37589815945 37593434746 37597054115 37600672471 37604291931
37607912018)

About these ads

Pages: 1 2 3

4 Responses to “Counting Primes”

  1. Alan said

    This is too easy in J, which has a _primes_ operator: p:

    First, define ‘n’ as the Number of Primes function: _1 p: N

    n =: _1&p:
    n 100
    25
    d,:n d=:100+i.10
    100 101 102 103 104 105 106 107 108 109
    25 25 26 26 27 27 27 27 28 28

    p: num is the primes function, which by default returns the first primes.

    The first 25 primes:

    p: i.25
    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

  2. Graham said

    I don’t have time to do this properly today, so I’ll cheat with Haskell’s primes
    package. It’s wicked fast, using “an efficient lazy wheel sieve for prime
    generation.” I only tested up to 10,000, but the same code can work for 1e12
    with patience and compilation. My compiler’s misbehaving today, though :-(

    import Data.Numbers.Primes
    
    primesLessThan :: (Integral a) => a -> [a]
    primesLessThan n = takeWhile (< n) primes
    
    primePi :: (Integral a) => a -> Int
    primePi = length . primesLessThan
    
    nthPrime :: (Integral a) => Int -> a
    nthPrime n = primes !! n
    
    test :: Int -> Bool
    test n = (primePi (nthPrime n)) == n
    
    main :: IO ()
    main = do
        print $ primesLessThan 100
        print $ all test [1..(round 1e4)]
    
  3. I wrote this one in a couple of forms a few months ago as a study in sieving. It’s not really pretty (nothing using pthreads is) but it chugs along pretty well. I can count all the primes up to 10^10 in about 12 seconds of elapsed time on my 8 processor machine, and it takes somewhere around 20 minutes to do all the way up to 10^12. There are actually ways to count primes that don’t involve finding all the primes, but they seemed impractical (hard to understand, and therefore hard to write).

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <math.h>
    #include <pthread.h>
    
    unsigned long long limit = 1000000000000LL ;
    unsigned long long sqlimit, sqlimit2 ;
    unsigned char *b0 ;
    
    #define min(a, b)       ((a)<(b)?(a):(b))
    
    int nthreads = 8 ;
    
    pthread_mutex_t mutex ;
    unsigned long long nextblock ;
    unsigned long long primecount ;
    
    void *
    workerThread(void *parm)
    {
        unsigned long long lo, hi, m ;
        unsigned long long idx, idx2, cnt = 0LL ;
        unsigned char *b1 = (unsigned char *) parm ;
        int i, rc ;
    
        for (;;) {
                pthread_mutex_lock(&mutex) ;
                lo = nextblock ; 
                hi = min(lo+sqlimit, limit) ;
                nextblock = hi  ;
                pthread_mutex_unlock(&mutex) ;
    
                if (lo >= limit)
                    break ;
    
                /* now, sieve */
                memset(b1, 0, sizeof(*b1)*sqlimit) ;
                for (idx=2; idx<sqlimit; idx++) {
                    if (b0[idx] == 0) {
                        /* it's a prime, strike out multiples of it in b1 */
                        m = lo / idx ;
                        idx2 = m * idx ;
                        if (idx2 < lo)
                            idx2 += idx ;
                        for ( ; idx2 < hi; idx2 += idx)
                            b1[idx2-lo] = 1 ;
                    }
                }
                for (idx=lo, cnt=0LL; idx < hi; idx ++) {
                    if (b1[idx-lo] == 0) {
                        /* printf("%lld\n", idx) ; */
                        cnt ++ ;
                    }
                }
    
                /* add in the total */
                pthread_mutex_lock(&mutex) ;
                /* printf("%lld %lld %lld %lld\n", lo, hi, primecount, cnt) ; */
                primecount += cnt ;
                pthread_mutex_unlock(&mutex) ;
        }
    
        return NULL ;
    }
    
    
    main(int argc, char *argv[]) 
    {
        unsigned long long idx, idx2, cnt = 0LL ;
        unsigned long long lo, hi, m ;
        int i, rc ;
    
    
        if (argc > 1)
            limit = atoll(argv[1]) ;
        sqlimit = (unsigned long long) ceil(sqrt((double) limit)) ;
        sqlimit2 = (unsigned long long) ceil(sqrt((double) sqlimit)) ;
    
        /* okay, allocate two buffers */
        b0 = (unsigned char *) calloc(sqlimit, sizeof(unsigned char)) ;
    
        /* sieve to find the first sqlimit primes */
    
        for (idx=2; idx<=sqlimit2; idx++)
            if (b0[idx] == 0) {
                for (idx2 = idx*idx; idx2 < sqlimit; idx2 += idx)
                    b0[idx2] = 1 ;
            }
    
        for (idx=2LL; idx < sqlimit; idx++)
            if (b0[idx] == 0) {
                /* printf("%lld\n", idx) ; */
                cnt ++ ;
            }
    
        fprintf(stderr, "%lld primes less than %lld\n", cnt, sqlimit) ;
    
        /* now, fork a bunch of threads... */
    
        nextblock = sqlimit ;
        primecount = cnt ;
        pthread_mutex_init(&mutex, NULL) ;
    
        pthread_t *thread = (pthread_t *) calloc(nthreads, sizeof(pthread_t)) ;
    
        for (i=0; i<nthreads; i++) {
            rc = pthread_create(&thread[i], NULL, workerThread, (void *) calloc(sqlimit, sizeof(unsigned char))) ;
        }
    
        /* wait for everyone to finish */
    
        for (i=0; i<nthreads; i++) {
            pthread_join(thread[i], NULL) ;
        }
    
        printf("%lld primes less than %lld\n", primecount, limit) ;
    }
    
  4. [...] week Programming Praxis proposed to write two [...]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 611 other followers

%d bloggers like this: