12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004 |
- #include "os.h"
- ulong smallprimes[1000] = {
- 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,
- 101,
- 103,
- 107,
- 109,
- 113,
- 127,
- 131,
- 137,
- 139,
- 149,
- 151,
- 157,
- 163,
- 167,
- 173,
- 179,
- 181,
- 191,
- 193,
- 197,
- 199,
- 211,
- 223,
- 227,
- 229,
- 233,
- 239,
- 241,
- 251,
- 257,
- 263,
- 269,
- 271,
- 277,
- 281,
- 283,
- 293,
- 307,
- 311,
- 313,
- 317,
- 331,
- 337,
- 347,
- 349,
- 353,
- 359,
- 367,
- 373,
- 379,
- 383,
- 389,
- 397,
- 401,
- 409,
- 419,
- 421,
- 431,
- 433,
- 439,
- 443,
- 449,
- 457,
- 461,
- 463,
- 467,
- 479,
- 487,
- 491,
- 499,
- 503,
- 509,
- 521,
- 523,
- 541,
- 547,
- 557,
- 563,
- 569,
- 571,
- 577,
- 587,
- 593,
- 599,
- 601,
- 607,
- 613,
- 617,
- 619,
- 631,
- 641,
- 643,
- 647,
- 653,
- 659,
- 661,
- 673,
- 677,
- 683,
- 691,
- 701,
- 709,
- 719,
- 727,
- 733,
- 739,
- 743,
- 751,
- 757,
- 761,
- 769,
- 773,
- 787,
- 797,
- 809,
- 811,
- 821,
- 823,
- 827,
- 829,
- 839,
- 853,
- 857,
- 859,
- 863,
- 877,
- 881,
- 883,
- 887,
- 907,
- 911,
- 919,
- 929,
- 937,
- 941,
- 947,
- 953,
- 967,
- 971,
- 977,
- 983,
- 991,
- 997,
- 1009,
- 1013,
- 1019,
- 1021,
- 1031,
- 1033,
- 1039,
- 1049,
- 1051,
- 1061,
- 1063,
- 1069,
- 1087,
- 1091,
- 1093,
- 1097,
- 1103,
- 1109,
- 1117,
- 1123,
- 1129,
- 1151,
- 1153,
- 1163,
- 1171,
- 1181,
- 1187,
- 1193,
- 1201,
- 1213,
- 1217,
- 1223,
- 1229,
- 1231,
- 1237,
- 1249,
- 1259,
- 1277,
- 1279,
- 1283,
- 1289,
- 1291,
- 1297,
- 1301,
- 1303,
- 1307,
- 1319,
- 1321,
- 1327,
- 1361,
- 1367,
- 1373,
- 1381,
- 1399,
- 1409,
- 1423,
- 1427,
- 1429,
- 1433,
- 1439,
- 1447,
- 1451,
- 1453,
- 1459,
- 1471,
- 1481,
- 1483,
- 1487,
- 1489,
- 1493,
- 1499,
- 1511,
- 1523,
- 1531,
- 1543,
- 1549,
- 1553,
- 1559,
- 1567,
- 1571,
- 1579,
- 1583,
- 1597,
- 1601,
- 1607,
- 1609,
- 1613,
- 1619,
- 1621,
- 1627,
- 1637,
- 1657,
- 1663,
- 1667,
- 1669,
- 1693,
- 1697,
- 1699,
- 1709,
- 1721,
- 1723,
- 1733,
- 1741,
- 1747,
- 1753,
- 1759,
- 1777,
- 1783,
- 1787,
- 1789,
- 1801,
- 1811,
- 1823,
- 1831,
- 1847,
- 1861,
- 1867,
- 1871,
- 1873,
- 1877,
- 1879,
- 1889,
- 1901,
- 1907,
- 1913,
- 1931,
- 1933,
- 1949,
- 1951,
- 1973,
- 1979,
- 1987,
- 1993,
- 1997,
- 1999,
- 2003,
- 2011,
- 2017,
- 2027,
- 2029,
- 2039,
- 2053,
- 2063,
- 2069,
- 2081,
- 2083,
- 2087,
- 2089,
- 2099,
- 2111,
- 2113,
- 2129,
- 2131,
- 2137,
- 2141,
- 2143,
- 2153,
- 2161,
- 2179,
- 2203,
- 2207,
- 2213,
- 2221,
- 2237,
- 2239,
- 2243,
- 2251,
- 2267,
- 2269,
- 2273,
- 2281,
- 2287,
- 2293,
- 2297,
- 2309,
- 2311,
- 2333,
- 2339,
- 2341,
- 2347,
- 2351,
- 2357,
- 2371,
- 2377,
- 2381,
- 2383,
- 2389,
- 2393,
- 2399,
- 2411,
- 2417,
- 2423,
- 2437,
- 2441,
- 2447,
- 2459,
- 2467,
- 2473,
- 2477,
- 2503,
- 2521,
- 2531,
- 2539,
- 2543,
- 2549,
- 2551,
- 2557,
- 2579,
- 2591,
- 2593,
- 2609,
- 2617,
- 2621,
- 2633,
- 2647,
- 2657,
- 2659,
- 2663,
- 2671,
- 2677,
- 2683,
- 2687,
- 2689,
- 2693,
- 2699,
- 2707,
- 2711,
- 2713,
- 2719,
- 2729,
- 2731,
- 2741,
- 2749,
- 2753,
- 2767,
- 2777,
- 2789,
- 2791,
- 2797,
- 2801,
- 2803,
- 2819,
- 2833,
- 2837,
- 2843,
- 2851,
- 2857,
- 2861,
- 2879,
- 2887,
- 2897,
- 2903,
- 2909,
- 2917,
- 2927,
- 2939,
- 2953,
- 2957,
- 2963,
- 2969,
- 2971,
- 2999,
- 3001,
- 3011,
- 3019,
- 3023,
- 3037,
- 3041,
- 3049,
- 3061,
- 3067,
- 3079,
- 3083,
- 3089,
- 3109,
- 3119,
- 3121,
- 3137,
- 3163,
- 3167,
- 3169,
- 3181,
- 3187,
- 3191,
- 3203,
- 3209,
- 3217,
- 3221,
- 3229,
- 3251,
- 3253,
- 3257,
- 3259,
- 3271,
- 3299,
- 3301,
- 3307,
- 3313,
- 3319,
- 3323,
- 3329,
- 3331,
- 3343,
- 3347,
- 3359,
- 3361,
- 3371,
- 3373,
- 3389,
- 3391,
- 3407,
- 3413,
- 3433,
- 3449,
- 3457,
- 3461,
- 3463,
- 3467,
- 3469,
- 3491,
- 3499,
- 3511,
- 3517,
- 3527,
- 3529,
- 3533,
- 3539,
- 3541,
- 3547,
- 3557,
- 3559,
- 3571,
- 3581,
- 3583,
- 3593,
- 3607,
- 3613,
- 3617,
- 3623,
- 3631,
- 3637,
- 3643,
- 3659,
- 3671,
- 3673,
- 3677,
- 3691,
- 3697,
- 3701,
- 3709,
- 3719,
- 3727,
- 3733,
- 3739,
- 3761,
- 3767,
- 3769,
- 3779,
- 3793,
- 3797,
- 3803,
- 3821,
- 3823,
- 3833,
- 3847,
- 3851,
- 3853,
- 3863,
- 3877,
- 3881,
- 3889,
- 3907,
- 3911,
- 3917,
- 3919,
- 3923,
- 3929,
- 3931,
- 3943,
- 3947,
- 3967,
- 3989,
- 4001,
- 4003,
- 4007,
- 4013,
- 4019,
- 4021,
- 4027,
- 4049,
- 4051,
- 4057,
- 4073,
- 4079,
- 4091,
- 4093,
- 4099,
- 4111,
- 4127,
- 4129,
- 4133,
- 4139,
- 4153,
- 4157,
- 4159,
- 4177,
- 4201,
- 4211,
- 4217,
- 4219,
- 4229,
- 4231,
- 4241,
- 4243,
- 4253,
- 4259,
- 4261,
- 4271,
- 4273,
- 4283,
- 4289,
- 4297,
- 4327,
- 4337,
- 4339,
- 4349,
- 4357,
- 4363,
- 4373,
- 4391,
- 4397,
- 4409,
- 4421,
- 4423,
- 4441,
- 4447,
- 4451,
- 4457,
- 4463,
- 4481,
- 4483,
- 4493,
- 4507,
- 4513,
- 4517,
- 4519,
- 4523,
- 4547,
- 4549,
- 4561,
- 4567,
- 4583,
- 4591,
- 4597,
- 4603,
- 4621,
- 4637,
- 4639,
- 4643,
- 4649,
- 4651,
- 4657,
- 4663,
- 4673,
- 4679,
- 4691,
- 4703,
- 4721,
- 4723,
- 4729,
- 4733,
- 4751,
- 4759,
- 4783,
- 4787,
- 4789,
- 4793,
- 4799,
- 4801,
- 4813,
- 4817,
- 4831,
- 4861,
- 4871,
- 4877,
- 4889,
- 4903,
- 4909,
- 4919,
- 4931,
- 4933,
- 4937,
- 4943,
- 4951,
- 4957,
- 4967,
- 4969,
- 4973,
- 4987,
- 4993,
- 4999,
- 5003,
- 5009,
- 5011,
- 5021,
- 5023,
- 5039,
- 5051,
- 5059,
- 5077,
- 5081,
- 5087,
- 5099,
- 5101,
- 5107,
- 5113,
- 5119,
- 5147,
- 5153,
- 5167,
- 5171,
- 5179,
- 5189,
- 5197,
- 5209,
- 5227,
- 5231,
- 5233,
- 5237,
- 5261,
- 5273,
- 5279,
- 5281,
- 5297,
- 5303,
- 5309,
- 5323,
- 5333,
- 5347,
- 5351,
- 5381,
- 5387,
- 5393,
- 5399,
- 5407,
- 5413,
- 5417,
- 5419,
- 5431,
- 5437,
- 5441,
- 5443,
- 5449,
- 5471,
- 5477,
- 5479,
- 5483,
- 5501,
- 5503,
- 5507,
- 5519,
- 5521,
- 5527,
- 5531,
- 5557,
- 5563,
- 5569,
- 5573,
- 5581,
- 5591,
- 5623,
- 5639,
- 5641,
- 5647,
- 5651,
- 5653,
- 5657,
- 5659,
- 5669,
- 5683,
- 5689,
- 5693,
- 5701,
- 5711,
- 5717,
- 5737,
- 5741,
- 5743,
- 5749,
- 5779,
- 5783,
- 5791,
- 5801,
- 5807,
- 5813,
- 5821,
- 5827,
- 5839,
- 5843,
- 5849,
- 5851,
- 5857,
- 5861,
- 5867,
- 5869,
- 5879,
- 5881,
- 5897,
- 5903,
- 5923,
- 5927,
- 5939,
- 5953,
- 5981,
- 5987,
- 6007,
- 6011,
- 6029,
- 6037,
- 6043,
- 6047,
- 6053,
- 6067,
- 6073,
- 6079,
- 6089,
- 6091,
- 6101,
- 6113,
- 6121,
- 6131,
- 6133,
- 6143,
- 6151,
- 6163,
- 6173,
- 6197,
- 6199,
- 6203,
- 6211,
- 6217,
- 6221,
- 6229,
- 6247,
- 6257,
- 6263,
- 6269,
- 6271,
- 6277,
- 6287,
- 6299,
- 6301,
- 6311,
- 6317,
- 6323,
- 6329,
- 6337,
- 6343,
- 6353,
- 6359,
- 6361,
- 6367,
- 6373,
- 6379,
- 6389,
- 6397,
- 6421,
- 6427,
- 6449,
- 6451,
- 6469,
- 6473,
- 6481,
- 6491,
- 6521,
- 6529,
- 6547,
- 6551,
- 6553,
- 6563,
- 6569,
- 6571,
- 6577,
- 6581,
- 6599,
- 6607,
- 6619,
- 6637,
- 6653,
- 6659,
- 6661,
- 6673,
- 6679,
- 6689,
- 6691,
- 6701,
- 6703,
- 6709,
- 6719,
- 6733,
- 6737,
- 6761,
- 6763,
- 6779,
- 6781,
- 6791,
- 6793,
- 6803,
- 6823,
- 6827,
- 6829,
- 6833,
- 6841,
- 6857,
- 6863,
- 6869,
- 6871,
- 6883,
- 6899,
- 6907,
- 6911,
- 6917,
- 6947,
- 6949,
- 6959,
- 6961,
- 6967,
- 6971,
- 6977,
- 6983,
- 6991,
- 6997,
- 7001,
- 7013,
- 7019,
- 7027,
- 7039,
- 7043,
- 7057,
- 7069,
- 7079,
- 7103,
- 7109,
- 7121,
- 7127,
- 7129,
- 7151,
- 7159,
- 7177,
- 7187,
- 7193,
- 7207,
- 7211,
- 7213,
- 7219,
- 7229,
- 7237,
- 7243,
- 7247,
- 7253,
- 7283,
- 7297,
- 7307,
- 7309,
- 7321,
- 7331,
- 7333,
- 7349,
- 7351,
- 7369,
- 7393,
- 7411,
- 7417,
- 7433,
- 7451,
- 7457,
- 7459,
- 7477,
- 7481,
- 7487,
- 7489,
- 7499,
- 7507,
- 7517,
- 7523,
- 7529,
- 7537,
- 7541,
- 7547,
- 7549,
- 7559,
- 7561,
- 7573,
- 7577,
- 7583,
- 7589,
- 7591,
- 7603,
- 7607,
- 7621,
- 7639,
- 7643,
- 7649,
- 7669,
- 7673,
- 7681,
- 7687,
- 7691,
- 7699,
- 7703,
- 7717,
- 7723,
- 7727,
- 7741,
- 7753,
- 7757,
- 7759,
- 7789,
- 7793,
- 7817,
- 7823,
- 7829,
- 7841,
- 7853,
- 7867,
- 7873,
- 7877,
- 7879,
- 7883,
- 7901,
- 7907,
- 7919,
- };
|