#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, | |
}; |