Botan  2.4.0
Crypto and TLS for C++11
primes.cpp
Go to the documentation of this file.
1 /*
2 * Small Primes Table
3 * (C) 1999-2007 Jack Lloyd
4 *
5 * Botan is released under the Simplified BSD License (see license.txt)
6 */
7 
8 #include <botan/numthry.h>
9 
10 namespace Botan {
11 
12 const uint16_t PRIMES[PRIME_TABLE_SIZE+1] = {
13  3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37,
14  41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83,
15  89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139,
16  149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197,
17  199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263,
18  269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331,
19  337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397,
20  401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461,
21  463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541,
22  547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607,
23  613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673,
24  677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751,
25  757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827,
26  829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907,
27  911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983,
28  991, 997, 1009, 1013, 1019, 1021, 1031, 1033, 1039, 1049, 1051,
29  1061, 1063, 1069, 1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123,
30  1129, 1151, 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217,
31  1223, 1229, 1231, 1237, 1249, 1259, 1277, 1279, 1283, 1289, 1291,
32  1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373, 1381,
33  1399, 1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451, 1453, 1459,
34  1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511, 1523, 1531, 1543,
35  1549, 1553, 1559, 1567, 1571, 1579, 1583, 1597, 1601, 1607, 1609,
36  1613, 1619, 1621, 1627, 1637, 1657, 1663, 1667, 1669, 1693, 1697,
37  1699, 1709, 1721, 1723, 1733, 1741, 1747, 1753, 1759, 1777, 1783,
38  1787, 1789, 1801, 1811, 1823, 1831, 1847, 1861, 1867, 1871, 1873,
39  1877, 1879, 1889, 1901, 1907, 1913, 1931, 1933, 1949, 1951, 1973,
40  1979, 1987, 1993, 1997, 1999, 2003, 2011, 2017, 2027, 2029, 2039,
41  2053, 2063, 2069, 2081, 2083, 2087, 2089, 2099, 2111, 2113, 2129,
42  2131, 2137, 2141, 2143, 2153, 2161, 2179, 2203, 2207, 2213, 2221,
43  2237, 2239, 2243, 2251, 2267, 2269, 2273, 2281, 2287, 2293, 2297,
44  2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357, 2371, 2377, 2381,
45  2383, 2389, 2393, 2399, 2411, 2417, 2423, 2437, 2441, 2447, 2459,
46  2467, 2473, 2477, 2503, 2521, 2531, 2539, 2543, 2549, 2551, 2557,
47  2579, 2591, 2593, 2609, 2617, 2621, 2633, 2647, 2657, 2659, 2663,
48  2671, 2677, 2683, 2687, 2689, 2693, 2699, 2707, 2711, 2713, 2719,
49  2729, 2731, 2741, 2749, 2753, 2767, 2777, 2789, 2791, 2797, 2801,
50  2803, 2819, 2833, 2837, 2843, 2851, 2857, 2861, 2879, 2887, 2897,
51  2903, 2909, 2917, 2927, 2939, 2953, 2957, 2963, 2969, 2971, 2999,
52  3001, 3011, 3019, 3023, 3037, 3041, 3049, 3061, 3067, 3079, 3083,
53  3089, 3109, 3119, 3121, 3137, 3163, 3167, 3169, 3181, 3187, 3191,
54  3203, 3209, 3217, 3221, 3229, 3251, 3253, 3257, 3259, 3271, 3299,
55  3301, 3307, 3313, 3319, 3323, 3329, 3331, 3343, 3347, 3359, 3361,
56  3371, 3373, 3389, 3391, 3407, 3413, 3433, 3449, 3457, 3461, 3463,
57  3467, 3469, 3491, 3499, 3511, 3517, 3527, 3529, 3533, 3539, 3541,
58  3547, 3557, 3559, 3571, 3581, 3583, 3593, 3607, 3613, 3617, 3623,
59  3631, 3637, 3643, 3659, 3671, 3673, 3677, 3691, 3697, 3701, 3709,
60  3719, 3727, 3733, 3739, 3761, 3767, 3769, 3779, 3793, 3797, 3803,
61  3821, 3823, 3833, 3847, 3851, 3853, 3863, 3877, 3881, 3889, 3907,
62  3911, 3917, 3919, 3923, 3929, 3931, 3943, 3947, 3967, 3989, 4001,
63  4003, 4007, 4013, 4019, 4021, 4027, 4049, 4051, 4057, 4073, 4079,
64  4091, 4093, 4099, 4111, 4127, 4129, 4133, 4139, 4153, 4157, 4159,
65  4177, 4201, 4211, 4217, 4219, 4229, 4231, 4241, 4243, 4253, 4259,
66  4261, 4271, 4273, 4283, 4289, 4297, 4327, 4337, 4339, 4349, 4357,
67  4363, 4373, 4391, 4397, 4409, 4421, 4423, 4441, 4447, 4451, 4457,
68  4463, 4481, 4483, 4493, 4507, 4513, 4517, 4519, 4523, 4547, 4549,
69  4561, 4567, 4583, 4591, 4597, 4603, 4621, 4637, 4639, 4643, 4649,
70  4651, 4657, 4663, 4673, 4679, 4691, 4703, 4721, 4723, 4729, 4733,
71  4751, 4759, 4783, 4787, 4789, 4793, 4799, 4801, 4813, 4817, 4831,
72  4861, 4871, 4877, 4889, 4903, 4909, 4919, 4931, 4933, 4937, 4943,
73  4951, 4957, 4967, 4969, 4973, 4987, 4993, 4999, 5003, 5009, 5011,
74  5021, 5023, 5039, 5051, 5059, 5077, 5081, 5087, 5099, 5101, 5107,
75  5113, 5119, 5147, 5153, 5167, 5171, 5179, 5189, 5197, 5209, 5227,
76  5231, 5233, 5237, 5261, 5273, 5279, 5281, 5297, 5303, 5309, 5323,
77  5333, 5347, 5351, 5381, 5387, 5393, 5399, 5407, 5413, 5417, 5419,
78  5431, 5437, 5441, 5443, 5449, 5471, 5477, 5479, 5483, 5501, 5503,
79  5507, 5519, 5521, 5527, 5531, 5557, 5563, 5569, 5573, 5581, 5591,
80  5623, 5639, 5641, 5647, 5651, 5653, 5657, 5659, 5669, 5683, 5689,
81  5693, 5701, 5711, 5717, 5737, 5741, 5743, 5749, 5779, 5783, 5791,
82  5801, 5807, 5813, 5821, 5827, 5839, 5843, 5849, 5851, 5857, 5861,
83  5867, 5869, 5879, 5881, 5897, 5903, 5923, 5927, 5939, 5953, 5981,
84  5987, 6007, 6011, 6029, 6037, 6043, 6047, 6053, 6067, 6073, 6079,
85  6089, 6091, 6101, 6113, 6121, 6131, 6133, 6143, 6151, 6163, 6173,
86  6197, 6199, 6203, 6211, 6217, 6221, 6229, 6247, 6257, 6263, 6269,
87  6271, 6277, 6287, 6299, 6301, 6311, 6317, 6323, 6329, 6337, 6343,
88  6353, 6359, 6361, 6367, 6373, 6379, 6389, 6397, 6421, 6427, 6449,
89  6451, 6469, 6473, 6481, 6491, 6521, 6529, 6547, 6551, 6553, 6563,
90  6569, 6571, 6577, 6581, 6599, 6607, 6619, 6637, 6653, 6659, 6661,
91  6673, 6679, 6689, 6691, 6701, 6703, 6709, 6719, 6733, 6737, 6761,
92  6763, 6779, 6781, 6791, 6793, 6803, 6823, 6827, 6829, 6833, 6841,
93  6857, 6863, 6869, 6871, 6883, 6899, 6907, 6911, 6917, 6947, 6949,
94  6959, 6961, 6967, 6971, 6977, 6983, 6991, 6997, 7001, 7013, 7019,
95  7027, 7039, 7043, 7057, 7069, 7079, 7103, 7109, 7121, 7127, 7129,
96  7151, 7159, 7177, 7187, 7193, 7207, 7211, 7213, 7219, 7229, 7237,
97  7243, 7247, 7253, 7283, 7297, 7307, 7309, 7321, 7331, 7333, 7349,
98  7351, 7369, 7393, 7411, 7417, 7433, 7451, 7457, 7459, 7477, 7481,
99  7487, 7489, 7499, 7507, 7517, 7523, 7529, 7537, 7541, 7547, 7549,
100  7559, 7561, 7573, 7577, 7583, 7589, 7591, 7603, 7607, 7621, 7639,
101  7643, 7649, 7669, 7673, 7681, 7687, 7691, 7699, 7703, 7717, 7723,
102  7727, 7741, 7753, 7757, 7759, 7789, 7793, 7817, 7823, 7829, 7841,
103  7853, 7867, 7873, 7877, 7879, 7883, 7901, 7907, 7919, 7927, 7933,
104  7937, 7949, 7951, 7963, 7993, 8009, 8011, 8017, 8039, 8053, 8059,
105  8069, 8081, 8087, 8089, 8093, 8101, 8111, 8117, 8123, 8147, 8161,
106  8167, 8171, 8179, 8191, 8209, 8219, 8221, 8231, 8233, 8237, 8243,
107  8263, 8269, 8273, 8287, 8291, 8293, 8297, 8311, 8317, 8329, 8353,
108  8363, 8369, 8377, 8387, 8389, 8419, 8423, 8429, 8431, 8443, 8447,
109  8461, 8467, 8501, 8513, 8521, 8527, 8537, 8539, 8543, 8563, 8573,
110  8581, 8597, 8599, 8609, 8623, 8627, 8629, 8641, 8647, 8663, 8669,
111  8677, 8681, 8689, 8693, 8699, 8707, 8713, 8719, 8731, 8737, 8741,
112  8747, 8753, 8761, 8779, 8783, 8803, 8807, 8819, 8821, 8831, 8837,
113  8839, 8849, 8861, 8863, 8867, 8887, 8893, 8923, 8929, 8933, 8941,
114  8951, 8963, 8969, 8971, 8999, 9001, 9007, 9011, 9013, 9029, 9041,
115  9043, 9049, 9059, 9067, 9091, 9103, 9109, 9127, 9133, 9137, 9151,
116  9157, 9161, 9173, 9181, 9187, 9199, 9203, 9209, 9221, 9227, 9239,
117  9241, 9257, 9277, 9281, 9283, 9293, 9311, 9319, 9323, 9337, 9341,
118  9343, 9349, 9371, 9377, 9391, 9397, 9403, 9413, 9419, 9421, 9431,
119  9433, 9437, 9439, 9461, 9463, 9467, 9473, 9479, 9491, 9497, 9511,
120  9521, 9533, 9539, 9547, 9551, 9587, 9601, 9613, 9619, 9623, 9629,
121  9631, 9643, 9649, 9661, 9677, 9679, 9689, 9697, 9719, 9721, 9733,
122  9739, 9743, 9749, 9767, 9769, 9781, 9787, 9791, 9803, 9811, 9817,
123  9829, 9833, 9839, 9851, 9857, 9859, 9871, 9883, 9887, 9901, 9907,
124  9923, 9929, 9931, 9941, 9949, 9967, 9973, 10007, 10009, 10037, 10039,
125 10061, 10067, 10069, 10079, 10091, 10093, 10099, 10103, 10111, 10133, 10139,
126 10141, 10151, 10159, 10163, 10169, 10177, 10181, 10193, 10211, 10223, 10243,
127 10247, 10253, 10259, 10267, 10271, 10273, 10289, 10301, 10303, 10313, 10321,
128 10331, 10333, 10337, 10343, 10357, 10369, 10391, 10399, 10427, 10429, 10433,
129 10453, 10457, 10459, 10463, 10477, 10487, 10499, 10501, 10513, 10529, 10531,
130 10559, 10567, 10589, 10597, 10601, 10607, 10613, 10627, 10631, 10639, 10651,
131 10657, 10663, 10667, 10687, 10691, 10709, 10711, 10723, 10729, 10733, 10739,
132 10753, 10771, 10781, 10789, 10799, 10831, 10837, 10847, 10853, 10859, 10861,
133 10867, 10883, 10889, 10891, 10903, 10909, 10937, 10939, 10949, 10957, 10973,
134 10979, 10987, 10993, 11003, 11027, 11047, 11057, 11059, 11069, 11071, 11083,
135 11087, 11093, 11113, 11117, 11119, 11131, 11149, 11159, 11161, 11171, 11173,
136 11177, 11197, 11213, 11239, 11243, 11251, 11257, 11261, 11273, 11279, 11287,
137 11299, 11311, 11317, 11321, 11329, 11351, 11353, 11369, 11383, 11393, 11399,
138 11411, 11423, 11437, 11443, 11447, 11467, 11471, 11483, 11489, 11491, 11497,
139 11503, 11519, 11527, 11549, 11551, 11579, 11587, 11593, 11597, 11617, 11621,
140 11633, 11657, 11677, 11681, 11689, 11699, 11701, 11717, 11719, 11731, 11743,
141 11777, 11779, 11783, 11789, 11801, 11807, 11813, 11821, 11827, 11831, 11833,
142 11839, 11863, 11867, 11887, 11897, 11903, 11909, 11923, 11927, 11933, 11939,
143 11941, 11953, 11959, 11969, 11971, 11981, 11987, 12007, 12011, 12037, 12041,
144 12043, 12049, 12071, 12073, 12097, 12101, 12107, 12109, 12113, 12119, 12143,
145 12149, 12157, 12161, 12163, 12197, 12203, 12211, 12227, 12239, 12241, 12251,
146 12253, 12263, 12269, 12277, 12281, 12289, 12301, 12323, 12329, 12343, 12347,
147 12373, 12377, 12379, 12391, 12401, 12409, 12413, 12421, 12433, 12437, 12451,
148 12457, 12473, 12479, 12487, 12491, 12497, 12503, 12511, 12517, 12527, 12539,
149 12541, 12547, 12553, 12569, 12577, 12583, 12589, 12601, 12611, 12613, 12619,
150 12637, 12641, 12647, 12653, 12659, 12671, 12689, 12697, 12703, 12713, 12721,
151 12739, 12743, 12757, 12763, 12781, 12791, 12799, 12809, 12821, 12823, 12829,
152 12841, 12853, 12889, 12893, 12899, 12907, 12911, 12917, 12919, 12923, 12941,
153 12953, 12959, 12967, 12973, 12979, 12983, 13001, 13003, 13007, 13009, 13033,
154 13037, 13043, 13049, 13063, 13093, 13099, 13103, 13109, 13121, 13127, 13147,
155 13151, 13159, 13163, 13171, 13177, 13183, 13187, 13217, 13219, 13229, 13241,
156 13249, 13259, 13267, 13291, 13297, 13309, 13313, 13327, 13331, 13337, 13339,
157 13367, 13381, 13397, 13399, 13411, 13417, 13421, 13441, 13451, 13457, 13463,
158 13469, 13477, 13487, 13499, 13513, 13523, 13537, 13553, 13567, 13577, 13591,
159 13597, 13613, 13619, 13627, 13633, 13649, 13669, 13679, 13681, 13687, 13691,
160 13693, 13697, 13709, 13711, 13721, 13723, 13729, 13751, 13757, 13759, 13763,
161 13781, 13789, 13799, 13807, 13829, 13831, 13841, 13859, 13873, 13877, 13879,
162 13883, 13901, 13903, 13907, 13913, 13921, 13931, 13933, 13963, 13967, 13997,
163 13999, 14009, 14011, 14029, 14033, 14051, 14057, 14071, 14081, 14083, 14087,
164 14107, 14143, 14149, 14153, 14159, 14173, 14177, 14197, 14207, 14221, 14243,
165 14249, 14251, 14281, 14293, 14303, 14321, 14323, 14327, 14341, 14347, 14369,
166 14387, 14389, 14401, 14407, 14411, 14419, 14423, 14431, 14437, 14447, 14449,
167 14461, 14479, 14489, 14503, 14519, 14533, 14537, 14543, 14549, 14551, 14557,
168 14561, 14563, 14591, 14593, 14621, 14627, 14629, 14633, 14639, 14653, 14657,
169 14669, 14683, 14699, 14713, 14717, 14723, 14731, 14737, 14741, 14747, 14753,
170 14759, 14767, 14771, 14779, 14783, 14797, 14813, 14821, 14827, 14831, 14843,
171 14851, 14867, 14869, 14879, 14887, 14891, 14897, 14923, 14929, 14939, 14947,
172 14951, 14957, 14969, 14983, 15013, 15017, 15031, 15053, 15061, 15073, 15077,
173 15083, 15091, 15101, 15107, 15121, 15131, 15137, 15139, 15149, 15161, 15173,
174 15187, 15193, 15199, 15217, 15227, 15233, 15241, 15259, 15263, 15269, 15271,
175 15277, 15287, 15289, 15299, 15307, 15313, 15319, 15329, 15331, 15349, 15359,
176 15361, 15373, 15377, 15383, 15391, 15401, 15413, 15427, 15439, 15443, 15451,
177 15461, 15467, 15473, 15493, 15497, 15511, 15527, 15541, 15551, 15559, 15569,
178 15581, 15583, 15601, 15607, 15619, 15629, 15641, 15643, 15647, 15649, 15661,
179 15667, 15671, 15679, 15683, 15727, 15731, 15733, 15737, 15739, 15749, 15761,
180 15767, 15773, 15787, 15791, 15797, 15803, 15809, 15817, 15823, 15859, 15877,
181 15881, 15887, 15889, 15901, 15907, 15913, 15919, 15923, 15937, 15959, 15971,
182 15973, 15991, 16001, 16007, 16033, 16057, 16061, 16063, 16067, 16069, 16073,
183 16087, 16091, 16097, 16103, 16111, 16127, 16139, 16141, 16183, 16187, 16189,
184 16193, 16217, 16223, 16229, 16231, 16249, 16253, 16267, 16273, 16301, 16319,
185 16333, 16339, 16349, 16361, 16363, 16369, 16381, 16411, 16417, 16421, 16427,
186 16433, 16447, 16451, 16453, 16477, 16481, 16487, 16493, 16519, 16529, 16547,
187 16553, 16561, 16567, 16573, 16603, 16607, 16619, 16631, 16633, 16649, 16651,
188 16657, 16661, 16673, 16691, 16693, 16699, 16703, 16729, 16741, 16747, 16759,
189 16763, 16787, 16811, 16823, 16829, 16831, 16843, 16871, 16879, 16883, 16889,
190 16901, 16903, 16921, 16927, 16931, 16937, 16943, 16963, 16979, 16981, 16987,
191 16993, 17011, 17021, 17027, 17029, 17033, 17041, 17047, 17053, 17077, 17093,
192 17099, 17107, 17117, 17123, 17137, 17159, 17167, 17183, 17189, 17191, 17203,
193 17207, 17209, 17231, 17239, 17257, 17291, 17293, 17299, 17317, 17321, 17327,
194 17333, 17341, 17351, 17359, 17377, 17383, 17387, 17389, 17393, 17401, 17417,
195 17419, 17431, 17443, 17449, 17467, 17471, 17477, 17483, 17489, 17491, 17497,
196 17509, 17519, 17539, 17551, 17569, 17573, 17579, 17581, 17597, 17599, 17609,
197 17623, 17627, 17657, 17659, 17669, 17681, 17683, 17707, 17713, 17729, 17737,
198 17747, 17749, 17761, 17783, 17789, 17791, 17807, 17827, 17837, 17839, 17851,
199 17863, 17881, 17891, 17903, 17909, 17911, 17921, 17923, 17929, 17939, 17957,
200 17959, 17971, 17977, 17981, 17987, 17989, 18013, 18041, 18043, 18047, 18049,
201 18059, 18061, 18077, 18089, 18097, 18119, 18121, 18127, 18131, 18133, 18143,
202 18149, 18169, 18181, 18191, 18199, 18211, 18217, 18223, 18229, 18233, 18251,
203 18253, 18257, 18269, 18287, 18289, 18301, 18307, 18311, 18313, 18329, 18341,
204 18353, 18367, 18371, 18379, 18397, 18401, 18413, 18427, 18433, 18439, 18443,
205 18451, 18457, 18461, 18481, 18493, 18503, 18517, 18521, 18523, 18539, 18541,
206 18553, 18583, 18587, 18593, 18617, 18637, 18661, 18671, 18679, 18691, 18701,
207 18713, 18719, 18731, 18743, 18749, 18757, 18773, 18787, 18793, 18797, 18803,
208 18839, 18859, 18869, 18899, 18911, 18913, 18917, 18919, 18947, 18959, 18973,
209 18979, 19001, 19009, 19013, 19031, 19037, 19051, 19069, 19073, 19079, 19081,
210 19087, 19121, 19139, 19141, 19157, 19163, 19181, 19183, 19207, 19211, 19213,
211 19219, 19231, 19237, 19249, 19259, 19267, 19273, 19289, 19301, 19309, 19319,
212 19333, 19373, 19379, 19381, 19387, 19391, 19403, 19417, 19421, 19423, 19427,
213 19429, 19433, 19441, 19447, 19457, 19463, 19469, 19471, 19477, 19483, 19489,
214 19501, 19507, 19531, 19541, 19543, 19553, 19559, 19571, 19577, 19583, 19597,
215 19603, 19609, 19661, 19681, 19687, 19697, 19699, 19709, 19717, 19727, 19739,
216 19751, 19753, 19759, 19763, 19777, 19793, 19801, 19813, 19819, 19841, 19843,
217 19853, 19861, 19867, 19889, 19891, 19913, 19919, 19927, 19937, 19949, 19961,
218 19963, 19973, 19979, 19991, 19993, 19997, 20011, 20021, 20023, 20029, 20047,
219 20051, 20063, 20071, 20089, 20101, 20107, 20113, 20117, 20123, 20129, 20143,
220 20147, 20149, 20161, 20173, 20177, 20183, 20201, 20219, 20231, 20233, 20249,
221 20261, 20269, 20287, 20297, 20323, 20327, 20333, 20341, 20347, 20353, 20357,
222 20359, 20369, 20389, 20393, 20399, 20407, 20411, 20431, 20441, 20443, 20477,
223 20479, 20483, 20507, 20509, 20521, 20533, 20543, 20549, 20551, 20563, 20593,
224 20599, 20611, 20627, 20639, 20641, 20663, 20681, 20693, 20707, 20717, 20719,
225 20731, 20743, 20747, 20749, 20753, 20759, 20771, 20773, 20789, 20807, 20809,
226 20849, 20857, 20873, 20879, 20887, 20897, 20899, 20903, 20921, 20929, 20939,
227 20947, 20959, 20963, 20981, 20983, 21001, 21011, 21013, 21017, 21019, 21023,
228 21031, 21059, 21061, 21067, 21089, 21101, 21107, 21121, 21139, 21143, 21149,
229 21157, 21163, 21169, 21179, 21187, 21191, 21193, 21211, 21221, 21227, 21247,
230 21269, 21277, 21283, 21313, 21317, 21319, 21323, 21341, 21347, 21377, 21379,
231 21383, 21391, 21397, 21401, 21407, 21419, 21433, 21467, 21481, 21487, 21491,
232 21493, 21499, 21503, 21517, 21521, 21523, 21529, 21557, 21559, 21563, 21569,
233 21577, 21587, 21589, 21599, 21601, 21611, 21613, 21617, 21647, 21649, 21661,
234 21673, 21683, 21701, 21713, 21727, 21737, 21739, 21751, 21757, 21767, 21773,
235 21787, 21799, 21803, 21817, 21821, 21839, 21841, 21851, 21859, 21863, 21871,
236 21881, 21893, 21911, 21929, 21937, 21943, 21961, 21977, 21991, 21997, 22003,
237 22013, 22027, 22031, 22037, 22039, 22051, 22063, 22067, 22073, 22079, 22091,
238 22093, 22109, 22111, 22123, 22129, 22133, 22147, 22153, 22157, 22159, 22171,
239 22189, 22193, 22229, 22247, 22259, 22271, 22273, 22277, 22279, 22283, 22291,
240 22303, 22307, 22343, 22349, 22367, 22369, 22381, 22391, 22397, 22409, 22433,
241 22441, 22447, 22453, 22469, 22481, 22483, 22501, 22511, 22531, 22541, 22543,
242 22549, 22567, 22571, 22573, 22613, 22619, 22621, 22637, 22639, 22643, 22651,
243 22669, 22679, 22691, 22697, 22699, 22709, 22717, 22721, 22727, 22739, 22741,
244 22751, 22769, 22777, 22783, 22787, 22807, 22811, 22817, 22853, 22859, 22861,
245 22871, 22877, 22901, 22907, 22921, 22937, 22943, 22961, 22963, 22973, 22993,
246 23003, 23011, 23017, 23021, 23027, 23029, 23039, 23041, 23053, 23057, 23059,
247 23063, 23071, 23081, 23087, 23099, 23117, 23131, 23143, 23159, 23167, 23173,
248 23189, 23197, 23201, 23203, 23209, 23227, 23251, 23269, 23279, 23291, 23293,
249 23297, 23311, 23321, 23327, 23333, 23339, 23357, 23369, 23371, 23399, 23417,
250 23431, 23447, 23459, 23473, 23497, 23509, 23531, 23537, 23539, 23549, 23557,
251 23561, 23563, 23567, 23581, 23593, 23599, 23603, 23609, 23623, 23627, 23629,
252 23633, 23663, 23669, 23671, 23677, 23687, 23689, 23719, 23741, 23743, 23747,
253 23753, 23761, 23767, 23773, 23789, 23801, 23813, 23819, 23827, 23831, 23833,
254 23857, 23869, 23873, 23879, 23887, 23893, 23899, 23909, 23911, 23917, 23929,
255 23957, 23971, 23977, 23981, 23993, 24001, 24007, 24019, 24023, 24029, 24043,
256 24049, 24061, 24071, 24077, 24083, 24091, 24097, 24103, 24107, 24109, 24113,
257 24121, 24133, 24137, 24151, 24169, 24179, 24181, 24197, 24203, 24223, 24229,
258 24239, 24247, 24251, 24281, 24317, 24329, 24337, 24359, 24371, 24373, 24379,
259 24391, 24407, 24413, 24419, 24421, 24439, 24443, 24469, 24473, 24481, 24499,
260 24509, 24517, 24527, 24533, 24547, 24551, 24571, 24593, 24611, 24623, 24631,
261 24659, 24671, 24677, 24683, 24691, 24697, 24709, 24733, 24749, 24763, 24767,
262 24781, 24793, 24799, 24809, 24821, 24841, 24847, 24851, 24859, 24877, 24889,
263 24907, 24917, 24919, 24923, 24943, 24953, 24967, 24971, 24977, 24979, 24989,
264 25013, 25031, 25033, 25037, 25057, 25073, 25087, 25097, 25111, 25117, 25121,
265 25127, 25147, 25153, 25163, 25169, 25171, 25183, 25189, 25219, 25229, 25237,
266 25243, 25247, 25253, 25261, 25301, 25303, 25307, 25309, 25321, 25339, 25343,
267 25349, 25357, 25367, 25373, 25391, 25409, 25411, 25423, 25439, 25447, 25453,
268 25457, 25463, 25469, 25471, 25523, 25537, 25541, 25561, 25577, 25579, 25583,
269 25589, 25601, 25603, 25609, 25621, 25633, 25639, 25643, 25657, 25667, 25673,
270 25679, 25693, 25703, 25717, 25733, 25741, 25747, 25759, 25763, 25771, 25793,
271 25799, 25801, 25819, 25841, 25847, 25849, 25867, 25873, 25889, 25903, 25913,
272 25919, 25931, 25933, 25939, 25943, 25951, 25969, 25981, 25997, 25999, 26003,
273 26017, 26021, 26029, 26041, 26053, 26083, 26099, 26107, 26111, 26113, 26119,
274 26141, 26153, 26161, 26171, 26177, 26183, 26189, 26203, 26209, 26227, 26237,
275 26249, 26251, 26261, 26263, 26267, 26293, 26297, 26309, 26317, 26321, 26339,
276 26347, 26357, 26371, 26387, 26393, 26399, 26407, 26417, 26423, 26431, 26437,
277 26449, 26459, 26479, 26489, 26497, 26501, 26513, 26539, 26557, 26561, 26573,
278 26591, 26597, 26627, 26633, 26641, 26647, 26669, 26681, 26683, 26687, 26693,
279 26699, 26701, 26711, 26713, 26717, 26723, 26729, 26731, 26737, 26759, 26777,
280 26783, 26801, 26813, 26821, 26833, 26839, 26849, 26861, 26863, 26879, 26881,
281 26891, 26893, 26903, 26921, 26927, 26947, 26951, 26953, 26959, 26981, 26987,
282 26993, 27011, 27017, 27031, 27043, 27059, 27061, 27067, 27073, 27077, 27091,
283 27103, 27107, 27109, 27127, 27143, 27179, 27191, 27197, 27211, 27239, 27241,
284 27253, 27259, 27271, 27277, 27281, 27283, 27299, 27329, 27337, 27361, 27367,
285 27397, 27407, 27409, 27427, 27431, 27437, 27449, 27457, 27479, 27481, 27487,
286 27509, 27527, 27529, 27539, 27541, 27551, 27581, 27583, 27611, 27617, 27631,
287 27647, 27653, 27673, 27689, 27691, 27697, 27701, 27733, 27737, 27739, 27743,
288 27749, 27751, 27763, 27767, 27773, 27779, 27791, 27793, 27799, 27803, 27809,
289 27817, 27823, 27827, 27847, 27851, 27883, 27893, 27901, 27917, 27919, 27941,
290 27943, 27947, 27953, 27961, 27967, 27983, 27997, 28001, 28019, 28027, 28031,
291 28051, 28057, 28069, 28081, 28087, 28097, 28099, 28109, 28111, 28123, 28151,
292 28163, 28181, 28183, 28201, 28211, 28219, 28229, 28277, 28279, 28283, 28289,
293 28297, 28307, 28309, 28319, 28349, 28351, 28387, 28393, 28403, 28409, 28411,
294 28429, 28433, 28439, 28447, 28463, 28477, 28493, 28499, 28513, 28517, 28537,
295 28541, 28547, 28549, 28559, 28571, 28573, 28579, 28591, 28597, 28603, 28607,
296 28619, 28621, 28627, 28631, 28643, 28649, 28657, 28661, 28663, 28669, 28687,
297 28697, 28703, 28711, 28723, 28729, 28751, 28753, 28759, 28771, 28789, 28793,
298 28807, 28813, 28817, 28837, 28843, 28859, 28867, 28871, 28879, 28901, 28909,
299 28921, 28927, 28933, 28949, 28961, 28979, 29009, 29017, 29021, 29023, 29027,
300 29033, 29059, 29063, 29077, 29101, 29123, 29129, 29131, 29137, 29147, 29153,
301 29167, 29173, 29179, 29191, 29201, 29207, 29209, 29221, 29231, 29243, 29251,
302 29269, 29287, 29297, 29303, 29311, 29327, 29333, 29339, 29347, 29363, 29383,
303 29387, 29389, 29399, 29401, 29411, 29423, 29429, 29437, 29443, 29453, 29473,
304 29483, 29501, 29527, 29531, 29537, 29567, 29569, 29573, 29581, 29587, 29599,
305 29611, 29629, 29633, 29641, 29663, 29669, 29671, 29683, 29717, 29723, 29741,
306 29753, 29759, 29761, 29789, 29803, 29819, 29833, 29837, 29851, 29863, 29867,
307 29873, 29879, 29881, 29917, 29921, 29927, 29947, 29959, 29983, 29989, 30011,
308 30013, 30029, 30047, 30059, 30071, 30089, 30091, 30097, 30103, 30109, 30113,
309 30119, 30133, 30137, 30139, 30161, 30169, 30181, 30187, 30197, 30203, 30211,
310 30223, 30241, 30253, 30259, 30269, 30271, 30293, 30307, 30313, 30319, 30323,
311 30341, 30347, 30367, 30389, 30391, 30403, 30427, 30431, 30449, 30467, 30469,
312 30491, 30493, 30497, 30509, 30517, 30529, 30539, 30553, 30557, 30559, 30577,
313 30593, 30631, 30637, 30643, 30649, 30661, 30671, 30677, 30689, 30697, 30703,
314 30707, 30713, 30727, 30757, 30763, 30773, 30781, 30803, 30809, 30817, 30829,
315 30839, 30841, 30851, 30853, 30859, 30869, 30871, 30881, 30893, 30911, 30931,
316 30937, 30941, 30949, 30971, 30977, 30983, 31013, 31019, 31033, 31039, 31051,
317 31063, 31069, 31079, 31081, 31091, 31121, 31123, 31139, 31147, 31151, 31153,
318 31159, 31177, 31181, 31183, 31189, 31193, 31219, 31223, 31231, 31237, 31247,
319 31249, 31253, 31259, 31267, 31271, 31277, 31307, 31319, 31321, 31327, 31333,
320 31337, 31357, 31379, 31387, 31391, 31393, 31397, 31469, 31477, 31481, 31489,
321 31511, 31513, 31517, 31531, 31541, 31543, 31547, 31567, 31573, 31583, 31601,
322 31607, 31627, 31643, 31649, 31657, 31663, 31667, 31687, 31699, 31721, 31723,
323 31727, 31729, 31741, 31751, 31769, 31771, 31793, 31799, 31817, 31847, 31849,
324 31859, 31873, 31883, 31891, 31907, 31957, 31963, 31973, 31981, 31991, 32003,
325 32009, 32027, 32029, 32051, 32057, 32059, 32063, 32069, 32077, 32083, 32089,
326 32099, 32117, 32119, 32141, 32143, 32159, 32173, 32183, 32189, 32191, 32203,
327 32213, 32233, 32237, 32251, 32257, 32261, 32297, 32299, 32303, 32309, 32321,
328 32323, 32327, 32341, 32353, 32359, 32363, 32369, 32371, 32377, 32381, 32401,
329 32411, 32413, 32423, 32429, 32441, 32443, 32467, 32479, 32491, 32497, 32503,
330 32507, 32531, 32533, 32537, 32561, 32563, 32569, 32573, 32579, 32587, 32603,
331 32609, 32611, 32621, 32633, 32647, 32653, 32687, 32693, 32707, 32713, 32717,
332 32719, 32749, 32771, 32779, 32783, 32789, 32797, 32801, 32803, 32831, 32833,
333 32839, 32843, 32869, 32887, 32909, 32911, 32917, 32933, 32939, 32941, 32957,
334 32969, 32971, 32983, 32987, 32993, 32999, 33013, 33023, 33029, 33037, 33049,
335 33053, 33071, 33073, 33083, 33091, 33107, 33113, 33119, 33149, 33151, 33161,
336 33179, 33181, 33191, 33199, 33203, 33211, 33223, 33247, 33287, 33289, 33301,
337 33311, 33317, 33329, 33331, 33343, 33347, 33349, 33353, 33359, 33377, 33391,
338 33403, 33409, 33413, 33427, 33457, 33461, 33469, 33479, 33487, 33493, 33503,
339 33521, 33529, 33533, 33547, 33563, 33569, 33577, 33581, 33587, 33589, 33599,
340 33601, 33613, 33617, 33619, 33623, 33629, 33637, 33641, 33647, 33679, 33703,
341 33713, 33721, 33739, 33749, 33751, 33757, 33767, 33769, 33773, 33791, 33797,
342 33809, 33811, 33827, 33829, 33851, 33857, 33863, 33871, 33889, 33893, 33911,
343 33923, 33931, 33937, 33941, 33961, 33967, 33997, 34019, 34031, 34033, 34039,
344 34057, 34061, 34123, 34127, 34129, 34141, 34147, 34157, 34159, 34171, 34183,
345 34211, 34213, 34217, 34231, 34253, 34259, 34261, 34267, 34273, 34283, 34297,
346 34301, 34303, 34313, 34319, 34327, 34337, 34351, 34361, 34367, 34369, 34381,
347 34403, 34421, 34429, 34439, 34457, 34469, 34471, 34483, 34487, 34499, 34501,
348 34511, 34513, 34519, 34537, 34543, 34549, 34583, 34589, 34591, 34603, 34607,
349 34613, 34631, 34649, 34651, 34667, 34673, 34679, 34687, 34693, 34703, 34721,
350 34729, 34739, 34747, 34757, 34759, 34763, 34781, 34807, 34819, 34841, 34843,
351 34847, 34849, 34871, 34877, 34883, 34897, 34913, 34919, 34939, 34949, 34961,
352 34963, 34981, 35023, 35027, 35051, 35053, 35059, 35069, 35081, 35083, 35089,
353 35099, 35107, 35111, 35117, 35129, 35141, 35149, 35153, 35159, 35171, 35201,
354 35221, 35227, 35251, 35257, 35267, 35279, 35281, 35291, 35311, 35317, 35323,
355 35327, 35339, 35353, 35363, 35381, 35393, 35401, 35407, 35419, 35423, 35437,
356 35447, 35449, 35461, 35491, 35507, 35509, 35521, 35527, 35531, 35533, 35537,
357 35543, 35569, 35573, 35591, 35593, 35597, 35603, 35617, 35671, 35677, 35729,
358 35731, 35747, 35753, 35759, 35771, 35797, 35801, 35803, 35809, 35831, 35837,
359 35839, 35851, 35863, 35869, 35879, 35897, 35899, 35911, 35923, 35933, 35951,
360 35963, 35969, 35977, 35983, 35993, 35999, 36007, 36011, 36013, 36017, 36037,
361 36061, 36067, 36073, 36083, 36097, 36107, 36109, 36131, 36137, 36151, 36161,
362 36187, 36191, 36209, 36217, 36229, 36241, 36251, 36263, 36269, 36277, 36293,
363 36299, 36307, 36313, 36319, 36341, 36343, 36353, 36373, 36383, 36389, 36433,
364 36451, 36457, 36467, 36469, 36473, 36479, 36493, 36497, 36523, 36527, 36529,
365 36541, 36551, 36559, 36563, 36571, 36583, 36587, 36599, 36607, 36629, 36637,
366 36643, 36653, 36671, 36677, 36683, 36691, 36697, 36709, 36713, 36721, 36739,
367 36749, 36761, 36767, 36779, 36781, 36787, 36791, 36793, 36809, 36821, 36833,
368 36847, 36857, 36871, 36877, 36887, 36899, 36901, 36913, 36919, 36923, 36929,
369 36931, 36943, 36947, 36973, 36979, 36997, 37003, 37013, 37019, 37021, 37039,
370 37049, 37057, 37061, 37087, 37097, 37117, 37123, 37139, 37159, 37171, 37181,
371 37189, 37199, 37201, 37217, 37223, 37243, 37253, 37273, 37277, 37307, 37309,
372 37313, 37321, 37337, 37339, 37357, 37361, 37363, 37369, 37379, 37397, 37409,
373 37423, 37441, 37447, 37463, 37483, 37489, 37493, 37501, 37507, 37511, 37517,
374 37529, 37537, 37547, 37549, 37561, 37567, 37571, 37573, 37579, 37589, 37591,
375 37607, 37619, 37633, 37643, 37649, 37657, 37663, 37691, 37693, 37699, 37717,
376 37747, 37781, 37783, 37799, 37811, 37813, 37831, 37847, 37853, 37861, 37871,
377 37879, 37889, 37897, 37907, 37951, 37957, 37963, 37967, 37987, 37991, 37993,
378 37997, 38011, 38039, 38047, 38053, 38069, 38083, 38113, 38119, 38149, 38153,
379 38167, 38177, 38183, 38189, 38197, 38201, 38219, 38231, 38237, 38239, 38261,
380 38273, 38281, 38287, 38299, 38303, 38317, 38321, 38327, 38329, 38333, 38351,
381 38371, 38377, 38393, 38431, 38447, 38449, 38453, 38459, 38461, 38501, 38543,
382 38557, 38561, 38567, 38569, 38593, 38603, 38609, 38611, 38629, 38639, 38651,
383 38653, 38669, 38671, 38677, 38693, 38699, 38707, 38711, 38713, 38723, 38729,
384 38737, 38747, 38749, 38767, 38783, 38791, 38803, 38821, 38833, 38839, 38851,
385 38861, 38867, 38873, 38891, 38903, 38917, 38921, 38923, 38933, 38953, 38959,
386 38971, 38977, 38993, 39019, 39023, 39041, 39043, 39047, 39079, 39089, 39097,
387 39103, 39107, 39113, 39119, 39133, 39139, 39157, 39161, 39163, 39181, 39191,
388 39199, 39209, 39217, 39227, 39229, 39233, 39239, 39241, 39251, 39293, 39301,
389 39313, 39317, 39323, 39341, 39343, 39359, 39367, 39371, 39373, 39383, 39397,
390 39409, 39419, 39439, 39443, 39451, 39461, 39499, 39503, 39509, 39511, 39521,
391 39541, 39551, 39563, 39569, 39581, 39607, 39619, 39623, 39631, 39659, 39667,
392 39671, 39679, 39703, 39709, 39719, 39727, 39733, 39749, 39761, 39769, 39779,
393 39791, 39799, 39821, 39827, 39829, 39839, 39841, 39847, 39857, 39863, 39869,
394 39877, 39883, 39887, 39901, 39929, 39937, 39953, 39971, 39979, 39983, 39989,
395 40009, 40013, 40031, 40037, 40039, 40063, 40087, 40093, 40099, 40111, 40123,
396 40127, 40129, 40151, 40153, 40163, 40169, 40177, 40189, 40193, 40213, 40231,
397 40237, 40241, 40253, 40277, 40283, 40289, 40343, 40351, 40357, 40361, 40387,
398 40423, 40427, 40429, 40433, 40459, 40471, 40483, 40487, 40493, 40499, 40507,
399 40519, 40529, 40531, 40543, 40559, 40577, 40583, 40591, 40597, 40609, 40627,
400 40637, 40639, 40693, 40697, 40699, 40709, 40739, 40751, 40759, 40763, 40771,
401 40787, 40801, 40813, 40819, 40823, 40829, 40841, 40847, 40849, 40853, 40867,
402 40879, 40883, 40897, 40903, 40927, 40933, 40939, 40949, 40961, 40973, 40993,
403 41011, 41017, 41023, 41039, 41047, 41051, 41057, 41077, 41081, 41113, 41117,
404 41131, 41141, 41143, 41149, 41161, 41177, 41179, 41183, 41189, 41201, 41203,
405 41213, 41221, 41227, 41231, 41233, 41243, 41257, 41263, 41269, 41281, 41299,
406 41333, 41341, 41351, 41357, 41381, 41387, 41389, 41399, 41411, 41413, 41443,
407 41453, 41467, 41479, 41491, 41507, 41513, 41519, 41521, 41539, 41543, 41549,
408 41579, 41593, 41597, 41603, 41609, 41611, 41617, 41621, 41627, 41641, 41647,
409 41651, 41659, 41669, 41681, 41687, 41719, 41729, 41737, 41759, 41761, 41771,
410 41777, 41801, 41809, 41813, 41843, 41849, 41851, 41863, 41879, 41887, 41893,
411 41897, 41903, 41911, 41927, 41941, 41947, 41953, 41957, 41959, 41969, 41981,
412 41983, 41999, 42013, 42017, 42019, 42023, 42043, 42061, 42071, 42073, 42083,
413 42089, 42101, 42131, 42139, 42157, 42169, 42179, 42181, 42187, 42193, 42197,
414 42209, 42221, 42223, 42227, 42239, 42257, 42281, 42283, 42293, 42299, 42307,
415 42323, 42331, 42337, 42349, 42359, 42373, 42379, 42391, 42397, 42403, 42407,
416 42409, 42433, 42437, 42443, 42451, 42457, 42461, 42463, 42467, 42473, 42487,
417 42491, 42499, 42509, 42533, 42557, 42569, 42571, 42577, 42589, 42611, 42641,
418 42643, 42649, 42667, 42677, 42683, 42689, 42697, 42701, 42703, 42709, 42719,
419 42727, 42737, 42743, 42751, 42767, 42773, 42787, 42793, 42797, 42821, 42829,
420 42839, 42841, 42853, 42859, 42863, 42899, 42901, 42923, 42929, 42937, 42943,
421 42953, 42961, 42967, 42979, 42989, 43003, 43013, 43019, 43037, 43049, 43051,
422 43063, 43067, 43093, 43103, 43117, 43133, 43151, 43159, 43177, 43189, 43201,
423 43207, 43223, 43237, 43261, 43271, 43283, 43291, 43313, 43319, 43321, 43331,
424 43391, 43397, 43399, 43403, 43411, 43427, 43441, 43451, 43457, 43481, 43487,
425 43499, 43517, 43541, 43543, 43573, 43577, 43579, 43591, 43597, 43607, 43609,
426 43613, 43627, 43633, 43649, 43651, 43661, 43669, 43691, 43711, 43717, 43721,
427 43753, 43759, 43777, 43781, 43783, 43787, 43789, 43793, 43801, 43853, 43867,
428 43889, 43891, 43913, 43933, 43943, 43951, 43961, 43963, 43969, 43973, 43987,
429 43991, 43997, 44017, 44021, 44027, 44029, 44041, 44053, 44059, 44071, 44087,
430 44089, 44101, 44111, 44119, 44123, 44129, 44131, 44159, 44171, 44179, 44189,
431 44201, 44203, 44207, 44221, 44249, 44257, 44263, 44267, 44269, 44273, 44279,
432 44281, 44293, 44351, 44357, 44371, 44381, 44383, 44389, 44417, 44449, 44453,
433 44483, 44491, 44497, 44501, 44507, 44519, 44531, 44533, 44537, 44543, 44549,
434 44563, 44579, 44587, 44617, 44621, 44623, 44633, 44641, 44647, 44651, 44657,
435 44683, 44687, 44699, 44701, 44711, 44729, 44741, 44753, 44771, 44773, 44777,
436 44789, 44797, 44809, 44819, 44839, 44843, 44851, 44867, 44879, 44887, 44893,
437 44909, 44917, 44927, 44939, 44953, 44959, 44963, 44971, 44983, 44987, 45007,
438 45013, 45053, 45061, 45077, 45083, 45119, 45121, 45127, 45131, 45137, 45139,
439 45161, 45179, 45181, 45191, 45197, 45233, 45247, 45259, 45263, 45281, 45289,
440 45293, 45307, 45317, 45319, 45329, 45337, 45341, 45343, 45361, 45377, 45389,
441 45403, 45413, 45427, 45433, 45439, 45481, 45491, 45497, 45503, 45523, 45533,
442 45541, 45553, 45557, 45569, 45587, 45589, 45599, 45613, 45631, 45641, 45659,
443 45667, 45673, 45677, 45691, 45697, 45707, 45737, 45751, 45757, 45763, 45767,
444 45779, 45817, 45821, 45823, 45827, 45833, 45841, 45853, 45863, 45869, 45887,
445 45893, 45943, 45949, 45953, 45959, 45971, 45979, 45989, 46021, 46027, 46049,
446 46051, 46061, 46073, 46091, 46093, 46099, 46103, 46133, 46141, 46147, 46153,
447 46171, 46181, 46183, 46187, 46199, 46219, 46229, 46237, 46261, 46271, 46273,
448 46279, 46301, 46307, 46309, 46327, 46337, 46349, 46351, 46381, 46399, 46411,
449 46439, 46441, 46447, 46451, 46457, 46471, 46477, 46489, 46499, 46507, 46511,
450 46523, 46549, 46559, 46567, 46573, 46589, 46591, 46601, 46619, 46633, 46639,
451 46643, 46649, 46663, 46679, 46681, 46687, 46691, 46703, 46723, 46727, 46747,
452 46751, 46757, 46769, 46771, 46807, 46811, 46817, 46819, 46829, 46831, 46853,
453 46861, 46867, 46877, 46889, 46901, 46919, 46933, 46957, 46993, 46997, 47017,
454 47041, 47051, 47057, 47059, 47087, 47093, 47111, 47119, 47123, 47129, 47137,
455 47143, 47147, 47149, 47161, 47189, 47207, 47221, 47237, 47251, 47269, 47279,
456 47287, 47293, 47297, 47303, 47309, 47317, 47339, 47351, 47353, 47363, 47381,
457 47387, 47389, 47407, 47417, 47419, 47431, 47441, 47459, 47491, 47497, 47501,
458 47507, 47513, 47521, 47527, 47533, 47543, 47563, 47569, 47581, 47591, 47599,
459 47609, 47623, 47629, 47639, 47653, 47657, 47659, 47681, 47699, 47701, 47711,
460 47713, 47717, 47737, 47741, 47743, 47777, 47779, 47791, 47797, 47807, 47809,
461 47819, 47837, 47843, 47857, 47869, 47881, 47903, 47911, 47917, 47933, 47939,
462 47947, 47951, 47963, 47969, 47977, 47981, 48017, 48023, 48029, 48049, 48073,
463 48079, 48091, 48109, 48119, 48121, 48131, 48157, 48163, 48179, 48187, 48193,
464 48197, 48221, 48239, 48247, 48259, 48271, 48281, 48299, 48311, 48313, 48337,
465 48341, 48353, 48371, 48383, 48397, 48407, 48409, 48413, 48437, 48449, 48463,
466 48473, 48479, 48481, 48487, 48491, 48497, 48523, 48527, 48533, 48539, 48541,
467 48563, 48571, 48589, 48593, 48611, 48619, 48623, 48647, 48649, 48661, 48673,
468 48677, 48679, 48731, 48733, 48751, 48757, 48761, 48767, 48779, 48781, 48787,
469 48799, 48809, 48817, 48821, 48823, 48847, 48857, 48859, 48869, 48871, 48883,
470 48889, 48907, 48947, 48953, 48973, 48989, 48991, 49003, 49009, 49019, 49031,
471 49033, 49037, 49043, 49057, 49069, 49081, 49103, 49109, 49117, 49121, 49123,
472 49139, 49157, 49169, 49171, 49177, 49193, 49199, 49201, 49207, 49211, 49223,
473 49253, 49261, 49277, 49279, 49297, 49307, 49331, 49333, 49339, 49363, 49367,
474 49369, 49391, 49393, 49409, 49411, 49417, 49429, 49433, 49451, 49459, 49463,
475 49477, 49481, 49499, 49523, 49529, 49531, 49537, 49547, 49549, 49559, 49597,
476 49603, 49613, 49627, 49633, 49639, 49663, 49667, 49669, 49681, 49697, 49711,
477 49727, 49739, 49741, 49747, 49757, 49783, 49787, 49789, 49801, 49807, 49811,
478 49823, 49831, 49843, 49853, 49871, 49877, 49891, 49919, 49921, 49927, 49937,
479 49939, 49943, 49957, 49991, 49993, 49999, 50021, 50023, 50033, 50047, 50051,
480 50053, 50069, 50077, 50087, 50093, 50101, 50111, 50119, 50123, 50129, 50131,
481 50147, 50153, 50159, 50177, 50207, 50221, 50227, 50231, 50261, 50263, 50273,
482 50287, 50291, 50311, 50321, 50329, 50333, 50341, 50359, 50363, 50377, 50383,
483 50387, 50411, 50417, 50423, 50441, 50459, 50461, 50497, 50503, 50513, 50527,
484 50539, 50543, 50549, 50551, 50581, 50587, 50591, 50593, 50599, 50627, 50647,
485 50651, 50671, 50683, 50707, 50723, 50741, 50753, 50767, 50773, 50777, 50789,
486 50821, 50833, 50839, 50849, 50857, 50867, 50873, 50891, 50893, 50909, 50923,
487 50929, 50951, 50957, 50969, 50971, 50989, 50993, 51001, 51031, 51043, 51047,
488 51059, 51061, 51071, 51109, 51131, 51133, 51137, 51151, 51157, 51169, 51193,
489 51197, 51199, 51203, 51217, 51229, 51239, 51241, 51257, 51263, 51283, 51287,
490 51307, 51329, 51341, 51343, 51347, 51349, 51361, 51383, 51407, 51413, 51419,
491 51421, 51427, 51431, 51437, 51439, 51449, 51461, 51473, 51479, 51481, 51487,
492 51503, 51511, 51517, 51521, 51539, 51551, 51563, 51577, 51581, 51593, 51599,
493 51607, 51613, 51631, 51637, 51647, 51659, 51673, 51679, 51683, 51691, 51713,
494 51719, 51721, 51749, 51767, 51769, 51787, 51797, 51803, 51817, 51827, 51829,
495 51839, 51853, 51859, 51869, 51871, 51893, 51899, 51907, 51913, 51929, 51941,
496 51949, 51971, 51973, 51977, 51991, 52009, 52021, 52027, 52051, 52057, 52067,
497 52069, 52081, 52103, 52121, 52127, 52147, 52153, 52163, 52177, 52181, 52183,
498 52189, 52201, 52223, 52237, 52249, 52253, 52259, 52267, 52289, 52291, 52301,
499 52313, 52321, 52361, 52363, 52369, 52379, 52387, 52391, 52433, 52453, 52457,
500 52489, 52501, 52511, 52517, 52529, 52541, 52543, 52553, 52561, 52567, 52571,
501 52579, 52583, 52609, 52627, 52631, 52639, 52667, 52673, 52691, 52697, 52709,
502 52711, 52721, 52727, 52733, 52747, 52757, 52769, 52783, 52807, 52813, 52817,
503 52837, 52859, 52861, 52879, 52883, 52889, 52901, 52903, 52919, 52937, 52951,
504 52957, 52963, 52967, 52973, 52981, 52999, 53003, 53017, 53047, 53051, 53069,
505 53077, 53087, 53089, 53093, 53101, 53113, 53117, 53129, 53147, 53149, 53161,
506 53171, 53173, 53189, 53197, 53201, 53231, 53233, 53239, 53267, 53269, 53279,
507 53281, 53299, 53309, 53323, 53327, 53353, 53359, 53377, 53381, 53401, 53407,
508 53411, 53419, 53437, 53441, 53453, 53479, 53503, 53507, 53527, 53549, 53551,
509 53569, 53591, 53593, 53597, 53609, 53611, 53617, 53623, 53629, 53633, 53639,
510 53653, 53657, 53681, 53693, 53699, 53717, 53719, 53731, 53759, 53773, 53777,
511 53783, 53791, 53813, 53819, 53831, 53849, 53857, 53861, 53881, 53887, 53891,
512 53897, 53899, 53917, 53923, 53927, 53939, 53951, 53959, 53987, 53993, 54001,
513 54011, 54013, 54037, 54049, 54059, 54083, 54091, 54101, 54121, 54133, 54139,
514 54151, 54163, 54167, 54181, 54193, 54217, 54251, 54269, 54277, 54287, 54293,
515 54311, 54319, 54323, 54331, 54347, 54361, 54367, 54371, 54377, 54401, 54403,
516 54409, 54413, 54419, 54421, 54437, 54443, 54449, 54469, 54493, 54497, 54499,
517 54503, 54517, 54521, 54539, 54541, 54547, 54559, 54563, 54577, 54581, 54583,
518 54601, 54617, 54623, 54629, 54631, 54647, 54667, 54673, 54679, 54709, 54713,
519 54721, 54727, 54751, 54767, 54773, 54779, 54787, 54799, 54829, 54833, 54851,
520 54869, 54877, 54881, 54907, 54917, 54919, 54941, 54949, 54959, 54973, 54979,
521 54983, 55001, 55009, 55021, 55049, 55051, 55057, 55061, 55073, 55079, 55103,
522 55109, 55117, 55127, 55147, 55163, 55171, 55201, 55207, 55213, 55217, 55219,
523 55229, 55243, 55249, 55259, 55291, 55313, 55331, 55333, 55337, 55339, 55343,
524 55351, 55373, 55381, 55399, 55411, 55439, 55441, 55457, 55469, 55487, 55501,
525 55511, 55529, 55541, 55547, 55579, 55589, 55603, 55609, 55619, 55621, 55631,
526 55633, 55639, 55661, 55663, 55667, 55673, 55681, 55691, 55697, 55711, 55717,
527 55721, 55733, 55763, 55787, 55793, 55799, 55807, 55813, 55817, 55819, 55823,
528 55829, 55837, 55843, 55849, 55871, 55889, 55897, 55901, 55903, 55921, 55927,
529 55931, 55933, 55949, 55967, 55987, 55997, 56003, 56009, 56039, 56041, 56053,
530 56081, 56087, 56093, 56099, 56101, 56113, 56123, 56131, 56149, 56167, 56171,
531 56179, 56197, 56207, 56209, 56237, 56239, 56249, 56263, 56267, 56269, 56299,
532 56311, 56333, 56359, 56369, 56377, 56383, 56393, 56401, 56417, 56431, 56437,
533 56443, 56453, 56467, 56473, 56477, 56479, 56489, 56501, 56503, 56509, 56519,
534 56527, 56531, 56533, 56543, 56569, 56591, 56597, 56599, 56611, 56629, 56633,
535 56659, 56663, 56671, 56681, 56687, 56701, 56711, 56713, 56731, 56737, 56747,
536 56767, 56773, 56779, 56783, 56807, 56809, 56813, 56821, 56827, 56843, 56857,
537 56873, 56891, 56893, 56897, 56909, 56911, 56921, 56923, 56929, 56941, 56951,
538 56957, 56963, 56983, 56989, 56993, 56999, 57037, 57041, 57047, 57059, 57073,
539 57077, 57089, 57097, 57107, 57119, 57131, 57139, 57143, 57149, 57163, 57173,
540 57179, 57191, 57193, 57203, 57221, 57223, 57241, 57251, 57259, 57269, 57271,
541 57283, 57287, 57301, 57329, 57331, 57347, 57349, 57367, 57373, 57383, 57389,
542 57397, 57413, 57427, 57457, 57467, 57487, 57493, 57503, 57527, 57529, 57557,
543 57559, 57571, 57587, 57593, 57601, 57637, 57641, 57649, 57653, 57667, 57679,
544 57689, 57697, 57709, 57713, 57719, 57727, 57731, 57737, 57751, 57773, 57781,
545 57787, 57791, 57793, 57803, 57809, 57829, 57839, 57847, 57853, 57859, 57881,
546 57899, 57901, 57917, 57923, 57943, 57947, 57973, 57977, 57991, 58013, 58027,
547 58031, 58043, 58049, 58057, 58061, 58067, 58073, 58099, 58109, 58111, 58129,
548 58147, 58151, 58153, 58169, 58171, 58189, 58193, 58199, 58207, 58211, 58217,
549 58229, 58231, 58237, 58243, 58271, 58309, 58313, 58321, 58337, 58363, 58367,
550 58369, 58379, 58391, 58393, 58403, 58411, 58417, 58427, 58439, 58441, 58451,
551 58453, 58477, 58481, 58511, 58537, 58543, 58549, 58567, 58573, 58579, 58601,
552 58603, 58613, 58631, 58657, 58661, 58679, 58687, 58693, 58699, 58711, 58727,
553 58733, 58741, 58757, 58763, 58771, 58787, 58789, 58831, 58889, 58897, 58901,
554 58907, 58909, 58913, 58921, 58937, 58943, 58963, 58967, 58979, 58991, 58997,
555 59009, 59011, 59021, 59023, 59029, 59051, 59053, 59063, 59069, 59077, 59083,
556 59093, 59107, 59113, 59119, 59123, 59141, 59149, 59159, 59167, 59183, 59197,
557 59207, 59209, 59219, 59221, 59233, 59239, 59243, 59263, 59273, 59281, 59333,
558 59341, 59351, 59357, 59359, 59369, 59377, 59387, 59393, 59399, 59407, 59417,
559 59419, 59441, 59443, 59447, 59453, 59467, 59471, 59473, 59497, 59509, 59513,
560 59539, 59557, 59561, 59567, 59581, 59611, 59617, 59621, 59627, 59629, 59651,
561 59659, 59663, 59669, 59671, 59693, 59699, 59707, 59723, 59729, 59743, 59747,
562 59753, 59771, 59779, 59791, 59797, 59809, 59833, 59863, 59879, 59887, 59921,
563 59929, 59951, 59957, 59971, 59981, 59999, 60013, 60017, 60029, 60037, 60041,
564 60077, 60083, 60089, 60091, 60101, 60103, 60107, 60127, 60133, 60139, 60149,
565 60161, 60167, 60169, 60209, 60217, 60223, 60251, 60257, 60259, 60271, 60289,
566 60293, 60317, 60331, 60337, 60343, 60353, 60373, 60383, 60397, 60413, 60427,
567 60443, 60449, 60457, 60493, 60497, 60509, 60521, 60527, 60539, 60589, 60601,
568 60607, 60611, 60617, 60623, 60631, 60637, 60647, 60649, 60659, 60661, 60679,
569 60689, 60703, 60719, 60727, 60733, 60737, 60757, 60761, 60763, 60773, 60779,
570 60793, 60811, 60821, 60859, 60869, 60887, 60889, 60899, 60901, 60913, 60917,
571 60919, 60923, 60937, 60943, 60953, 60961, 61001, 61007, 61027, 61031, 61043,
572 61051, 61057, 61091, 61099, 61121, 61129, 61141, 61151, 61153, 61169, 61211,
573 61223, 61231, 61253, 61261, 61283, 61291, 61297, 61331, 61333, 61339, 61343,
574 61357, 61363, 61379, 61381, 61403, 61409, 61417, 61441, 61463, 61469, 61471,
575 61483, 61487, 61493, 61507, 61511, 61519, 61543, 61547, 61553, 61559, 61561,
576 61583, 61603, 61609, 61613, 61627, 61631, 61637, 61643, 61651, 61657, 61667,
577 61673, 61681, 61687, 61703, 61717, 61723, 61729, 61751, 61757, 61781, 61813,
578 61819, 61837, 61843, 61861, 61871, 61879, 61909, 61927, 61933, 61949, 61961,
579 61967, 61979, 61981, 61987, 61991, 62003, 62011, 62017, 62039, 62047, 62053,
580 62057, 62071, 62081, 62099, 62119, 62129, 62131, 62137, 62141, 62143, 62171,
581 62189, 62191, 62201, 62207, 62213, 62219, 62233, 62273, 62297, 62299, 62303,
582 62311, 62323, 62327, 62347, 62351, 62383, 62401, 62417, 62423, 62459, 62467,
583 62473, 62477, 62483, 62497, 62501, 62507, 62533, 62539, 62549, 62563, 62581,
584 62591, 62597, 62603, 62617, 62627, 62633, 62639, 62653, 62659, 62683, 62687,
585 62701, 62723, 62731, 62743, 62753, 62761, 62773, 62791, 62801, 62819, 62827,
586 62851, 62861, 62869, 62873, 62897, 62903, 62921, 62927, 62929, 62939, 62969,
587 62971, 62981, 62983, 62987, 62989, 63029, 63031, 63059, 63067, 63073, 63079,
588 63097, 63103, 63113, 63127, 63131, 63149, 63179, 63197, 63199, 63211, 63241,
589 63247, 63277, 63281, 63299, 63311, 63313, 63317, 63331, 63337, 63347, 63353,
590 63361, 63367, 63377, 63389, 63391, 63397, 63409, 63419, 63421, 63439, 63443,
591 63463, 63467, 63473, 63487, 63493, 63499, 63521, 63527, 63533, 63541, 63559,
592 63577, 63587, 63589, 63599, 63601, 63607, 63611, 63617, 63629, 63647, 63649,
593 63659, 63667, 63671, 63689, 63691, 63697, 63703, 63709, 63719, 63727, 63737,
594 63743, 63761, 63773, 63781, 63793, 63799, 63803, 63809, 63823, 63839, 63841,
595 63853, 63857, 63863, 63901, 63907, 63913, 63929, 63949, 63977, 63997, 64007,
596 64013, 64019, 64033, 64037, 64063, 64067, 64081, 64091, 64109, 64123, 64151,
597 64153, 64157, 64171, 64187, 64189, 64217, 64223, 64231, 64237, 64271, 64279,
598 64283, 64301, 64303, 64319, 64327, 64333, 64373, 64381, 64399, 64403, 64433,
599 64439, 64451, 64453, 64483, 64489, 64499, 64513, 64553, 64567, 64577, 64579,
600 64591, 64601, 64609, 64613, 64621, 64627, 64633, 64661, 64663, 64667, 64679,
601 64693, 64709, 64717, 64747, 64763, 64781, 64783, 64793, 64811, 64817, 64849,
602 64853, 64871, 64877, 64879, 64891, 64901, 64919, 64921, 64927, 64937, 64951,
603 64969, 64997, 65003, 65011, 65027, 65029, 65033, 65053, 65063, 65071, 65089,
604 65099, 65101, 65111, 65119, 65123, 65129, 65141, 65147, 65167, 65171, 65173,
605 65179, 65183, 65203, 65213, 65239, 65257, 65267, 65269, 65287, 65293, 65309,
606 65323, 65327, 65353, 65357, 65371, 65381, 65393, 65407, 65413, 65419, 65423,
607 65437, 65447, 65449, 65479, 65497, 65519, 65521, 0 };
608 
609 }
const size_t PRIME_TABLE_SIZE
Definition: numthry.h:240
const uint16_t PRIMES[]
Definition: primes.cpp:12
Definition: alg_id.cpp:13