Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
// numera::number::integer::prime::data::largest_pow2
//
//!
//
// TOC
//
// - LARGEST_PRIME_POW2_DOUBLINGS
// - TEN_PRIMES_LESS_POW2

/// The largest primes that fit in the bits of consecutive doublings of
/// powers of two.
///
/// They are stored as $k$ at index $i$, such as $2^{i8}-k$ is the prime number.
///
/// # Examples
/// ```
/// use numera::all::{LARGEST_PRIME_POW2_DOUBLINGS as LPP2D, *};
///
/// assert_eq![Nnz8::MAX - Prime8::MAX.into() + Nnz8::ONE, (LPP2D[0] as u8).into()];
/// assert_eq![Nnz16::MAX - Prime16::MAX.into() + Nnz16::ONE, (LPP2D[1] as u16).into()];
/// assert_eq![Nnz32::MAX - Prime32::MAX.into() + Nnz32::ONE, (LPP2D[2] as u32).into()];
/// assert_eq![Nnz64::MAX - Prime64::MAX.into() + Nnz64::ONE, (LPP2D[3] as u64).into()];
/// assert_eq![Nnz128::MAX - Prime128::MAX.into() + Nnz128::ONE, (LPP2D[4] as u128).into()];
/// ```
pub const LARGEST_PRIME_POW2_DOUBLINGS: [u32; 14] = [
    5,     // 0: 8-bit, 3 digits
    15,    // 1: 16-bit, 5 digits
    5,     // 2: 32-bit, 10 digits
    59,    // 3: 64-bit, 20 digits
    159,   // 4: 128-bit, 39 digits
    189,   // 5: 256-bit, 78 digits
    569,   // 6: 512-bit, 155 digits
    104,   // 7: 1024-bit, 309 digits
    1557,  // 8: 2048-bit, 617 digits
    2549,  // 9: 4096-bit, 1,234 digits
    2439,  // 10: 8192-bit, 2,467 digits
    13797, // 11: 16384-bit, 4,933 digits
    25353, // 12: 32768-bit, 9,865 digits
    5627,  // 13: 65536-bit, 19,729 digits
];

/// The list of the 10 primes just less than each power of two
/// between 8 and 400 bits.
///
/// The information was extracted from the [prime pages].
///
/// [prime pages]: https://t5k.org/lists/2small/
///
/// # Examples
/// ```
/// use numera::all::{LARGEST_PRIME_POW2_DOUBLINGS as LPP2D, TEN_PRIMES_LESS_POW2 as TPLP2, *};
///
/// assert_eq![Nnz8::MAX - Prime8::MAX.into() + Nnz8::ONE, (TPLP2[8-8][0] as u8).into()];
/// assert_eq![Nnz16::MAX - Prime16::MAX.into() + Nnz16::ONE, (TPLP2[16-8][0] as u16).into()];
/// assert_eq![Nnz32::MAX - Prime32::MAX.into() + Nnz32::ONE, (TPLP2[32-8][0] as u32).into()];
/// assert_eq![Nnz64::MAX - Prime64::MAX.into() + Nnz64::ONE, (TPLP2[64-8][0] as u64).into()];
/// assert_eq![Nnz128::MAX - Prime128::MAX.into() + Nnz128::ONE, (TPLP2[128-8][0] as u128).into()];
/// assert_eq![LPP2D[5], TPLP2[256-8][0] as u32];
/// ```
pub const TEN_PRIMES_LESS_POW2: [[u16; 10]; 100 * 4 - 7] = [
    [5, 15, 17, 23, 27, 29, 33, 45, 57, 59],                  // 8
    [3, 9, 13, 21, 25, 33, 45, 49, 51, 55],                   // 9
    [3, 5, 11, 15, 27, 33, 41, 47, 53, 57],                   // 10
    [9, 19, 21, 31, 37, 45, 49, 51, 55, 61],                  // 11
    [3, 5, 17, 23, 39, 45, 47, 69, 75, 77],                   // 12
    [1, 13, 21, 25, 31, 45, 69, 75, 81, 91],                  // 13
    [3, 15, 21, 23, 35, 45, 51, 65, 83, 111],                 // 14
    [19, 49, 51, 55, 61, 75, 81, 115, 121, 135],              // 15
    [15, 17, 39, 57, 87, 89, 99, 113, 117, 123],              // 16
    [1, 9, 13, 31, 49, 61, 63, 85, 91, 99],                   // 17
    [5, 11, 17, 23, 33, 35, 41, 65, 75, 93],                  // 18
    [1, 19, 27, 31, 45, 57, 67, 69, 85, 87],                  // 19
    [3, 5, 17, 27, 59, 69, 129, 143, 153, 185],               // 20
    [9, 19, 21, 55, 61, 69, 105, 111, 121, 129],              // 21
    [3, 17, 27, 33, 57, 87, 105, 113, 117, 123],              // 22
    [15, 21, 27, 37, 61, 69, 135, 147, 157, 159],             // 23
    [3, 17, 33, 63, 75, 77, 89, 95, 117, 167],                // 24
    [39, 49, 61, 85, 91, 115, 141, 159, 165, 183],            // 25
    [5, 27, 45, 87, 101, 107, 111, 117, 125, 135],            // 26
    [39, 79, 111, 115, 135, 187, 199, 219, 231, 235],         // 27
    [57, 89, 95, 119, 125, 143, 165, 183, 213, 273],          // 28
    [3, 33, 43, 63, 73, 75, 93, 99, 121, 133],                // 29
    [35, 41, 83, 101, 105, 107, 135, 153, 161, 173],          // 30
    [1, 19, 61, 69, 85, 99, 105, 151, 159, 171],              // 31
    [5, 17, 65, 99, 107, 135, 153, 185, 209, 267],            // 32
    [9, 25, 49, 79, 105, 285, 301, 303, 321, 355],            // 33
    [41, 77, 113, 131, 143, 165, 185, 207, 227, 281],         // 34
    [31, 49, 61, 69, 79, 121, 141, 247, 309, 325],            // 35
    [5, 17, 23, 65, 117, 137, 159, 173, 189, 233],            // 36
    [25, 31, 45, 69, 123, 141, 199, 201, 351, 375],           // 37
    [45, 87, 107, 131, 153, 185, 191, 227, 231, 257],         // 38
    [7, 19, 67, 91, 135, 165, 219, 231, 241, 301],            // 39
    [87, 167, 195, 203, 213, 285, 293, 299, 389, 437],        // 40
    [21, 31, 55, 63, 73, 75, 91, 111, 133, 139],              // 41
    [11, 17, 33, 53, 65, 143, 161, 165, 215, 227],            // 42
    [57, 67, 117, 175, 255, 267, 291, 309, 319, 369],         // 43
    [17, 117, 119, 129, 143, 149, 287, 327, 359, 377],        // 44
    [55, 69, 81, 93, 121, 133, 139, 159, 193, 229],           // 45
    [21, 57, 63, 77, 167, 197, 237, 287, 305, 311],           // 46
    [115, 127, 147, 279, 297, 339, 435, 541, 619, 649],       // 47
    [59, 65, 89, 93, 147, 165, 189, 233, 243, 257],           // 48
    [81, 111, 123, 139, 181, 201, 213, 265, 283, 339],        // 49
    [27, 35, 51, 71, 113, 117, 131, 161, 195, 233],           // 50
    [129, 139, 165, 231, 237, 247, 355, 391, 397, 439],       // 51
    [47, 143, 173, 183, 197, 209, 269, 285, 335, 395],        // 52
    [111, 145, 231, 265, 315, 339, 343, 369, 379, 421],       // 53
    [33, 53, 131, 165, 195, 245, 255, 257, 315, 327],         // 54
    [55, 67, 99, 127, 147, 169, 171, 199, 207, 267],          // 55
    [5, 27, 47, 57, 89, 93, 147, 177, 189, 195],              // 56
    [13, 25, 49, 61, 69, 111, 195, 273, 363, 423],            // 57
    [27, 57, 63, 137, 141, 147, 161, 203, 213, 251],          // 58
    [55, 99, 225, 427, 517, 607, 649, 687, 861, 871],         // 59
    [93, 107, 173, 179, 257, 279, 369, 395, 399, 453],        // 60
    [1, 31, 45, 229, 259, 283, 339, 391, 403, 465],           // 61
    [57, 87, 117, 143, 153, 167, 171, 195, 203, 273],         // 62
    [25, 165, 259, 301, 375, 387, 391, 409, 457, 471],        // 63
    [59, 83, 95, 179, 189, 257, 279, 323, 353, 363],          // 64
    [49, 79, 115, 141, 163, 229, 301, 345, 453, 493],         // 65
    [5, 45, 173, 203, 275, 297, 387, 401, 443, 495],          // 66
    [19, 31, 49, 57, 61, 75, 81, 165, 181, 237],              // 67
    [23, 83, 125, 147, 149, 167, 285, 315, 345, 357],         // 68
    [19, 91, 93, 103, 129, 153, 165, 201, 255, 385],          // 69
    [35, 71, 167, 215, 263, 267, 273, 447, 473, 585],         // 70
    [231, 325, 411, 435, 441, 465, 559, 577, 601, 721],       // 71
    [93, 107, 129, 167, 249, 269, 329, 347, 429, 473],        // 72
    [69, 181, 199, 273, 319, 433, 475, 501, 523, 645],        // 73
    [35, 45, 57, 135, 153, 237, 257, 275, 461, 465],          // 74
    [97, 207, 231, 271, 279, 289, 325, 381, 409, 427],        // 75
    [15, 63, 117, 123, 143, 189, 215, 267, 285, 347],         // 76
    [33, 43, 145, 163, 195, 261, 295, 379, 433, 451],         // 77
    [11, 95, 111, 123, 147, 153, 191, 263, 303, 507],         // 78
    [67, 199, 249, 277, 355, 367, 405, 447, 477, 511],        // 79
    [65, 93, 117, 143, 285, 317, 549, 645, 765, 933],         // 80
    [51, 63, 163, 205, 333, 349, 429, 433, 481, 553],         // 81
    [57, 113, 185, 315, 363, 365, 375, 453, 623, 635],        // 82
    [55, 97, 117, 121, 139, 285, 307, 405, 429, 561],         // 83
    [35, 69, 213, 215, 333, 399, 525, 563, 587, 597],         // 84
    [19, 61, 181, 295, 411, 433, 469, 519, 531, 823],         // 85
    [35, 41, 65, 71, 113, 255, 261, 293, 357, 461],           // 86
    [67, 129, 181, 195, 201, 217, 261, 277, 289, 339],        // 87
    [299, 455, 483, 563, 605, 719, 735, 743, 753, 797],       // 88
    [1, 21, 31, 49, 69, 99, 103, 265, 321, 441],              // 89
    [33, 41, 53, 75, 227, 263, 273, 291, 297, 317],           // 90
    [45, 81, 111, 201, 315, 339, 567, 619, 655, 771],         // 91
    [83, 149, 197, 317, 363, 419, 485, 497, 519, 537],        // 92
    [25, 51, 79, 105, 273, 405, 489, 553, 571, 579],          // 93
    [3, 11, 105, 173, 273, 297, 321, 395, 407, 431],          // 94
    [15, 37, 211, 339, 387, 415, 441, 447, 555, 561],         // 95
    [17, 87, 93, 147, 165, 189, 237, 243, 315, 347],          // 96
    [141, 165, 349, 399, 453, 595, 729, 741, 859, 885],       // 97
    [51, 65, 107, 117, 141, 227, 273, 363, 471, 525],         // 98
    [115, 145, 247, 319, 381, 427, 675, 717, 1207, 1231],     // 99
    [15, 99, 153, 183, 267, 285, 357, 479, 603, 833],         // 100
    [69, 99, 213, 259, 363, 483, 493, 573, 619, 703],         // 101
    [33, 63, 417, 447, 473, 483, 671, 681, 707, 801],         // 102
    [97, 127, 237, 339, 441, 571, 619, 631, 697, 727],        // 103
    [17, 29, 309, 369, 395, 587, 639, 657, 717, 857],         // 104
    [13, 139, 151, 163, 231, 279, 313, 385, 469, 541],        // 105
    [117, 407, 431, 593, 623, 717, 791, 813, 941, 965],       // 106
    [1, 171, 321, 369, 441, 489, 721, 745, 919, 1077],        // 107
    [59, 137, 227, 233, 269, 383, 467, 483, 545, 633],        // 108
    [31, 91, 165, 399, 493, 735, 811, 943, 945, 1215],        // 109
    [21, 135, 143, 195, 215, 443, 467, 531, 533, 623],        // 110
    [37, 69, 175, 261, 429, 471, 487, 565, 765, 831],         // 111
    [75, 189, 269, 297, 327, 519, 537, 623, 699, 875],        // 112
    [133, 211, 463, 765, 831, 979, 1023, 1069, 1261, 1351],   // 113
    [11, 35, 53, 75, 153, 161, 195, 227, 237, 257],           // 114
    [67, 85, 97, 129, 277, 369, 379, 711, 865, 985],          // 115
    [3, 69, 83, 89, 117, 197, 303, 353, 359, 429],            // 116
    [279, 319, 373, 391, 451, 495, 541, 555, 685, 793],       // 117
    [5, 111, 273, 375, 447, 497, 563, 593, 735, 741],         // 118
    [69, 169, 231, 565, 745, 799, 801, 867, 871, 981],        // 119
    [119, 395, 515, 555, 615, 765, 873, 899, 1049, 1143],     // 120
    [73, 165, 225, 229, 433, 531, 565, 655, 685, 741],        // 121
    [3, 113, 167, 203, 341, 825, 843, 951, 1011, 1085],       // 122
    [67, 79, 135, 241, 471, 735, 847, 891, 1029, 1069],       // 123
    [59, 99, 155, 165, 327, 389, 503, 563, 615, 719],         // 124
    [9, 135, 385, 405, 415, 579, 633, 685, 853, 985],         // 125
    [137, 203, 237, 261, 335, 341, 465, 663, 671, 783],       // 126
    [1, 25, 39, 295, 309, 507, 511, 577, 697, 735],           // 127
    [159, 173, 233, 237, 275, 357, 675, 713, 797, 1193],      // 128
    [25, 315, 403, 613, 735, 741, 805, 1113, 1185, 1365],     // 129
    [5, 27, 113, 173, 315, 417, 425, 447, 455, 585],          // 130
    [69, 181, 271, 315, 385, 421, 427, 615, 625, 681],        // 131
    [347, 363, 405, 465, 527, 585, 725, 735, 915, 923],       // 132
    [99, 103, 183, 259, 453, 475, 631, 973, 1011, 1039],      // 133
    [45, 117, 185, 197, 345, 495, 603, 695, 957, 1115],       // 134
    [45, 55, 105, 205, 301, 409, 705, 795, 819, 915],         // 135
    [113, 243, 257, 297, 299, 335, 365, 369, 377, 423],       // 136
    [13, 33, 111, 231, 265, 303, 339, 421, 553, 555],         // 137
    [105, 203, 237, 261, 297, 423, 513, 765, 983, 1071],      // 138
    [187, 301, 397, 447, 517, 619, 837, 951, 997, 1245],      // 139
    [27, 57, 77, 129, 147, 357, 623, 759, 773, 843],          // 140
    [9, 103, 111, 165, 171, 193, 349, 523, 595, 625],         // 141
    [111, 351, 365, 375, 453, 585, 885, 887, 1215, 1383],     // 142
    [69, 127, 229, 351, 355, 381, 391, 465, 469, 471],        // 143
    [83, 167, 279, 369, 377, 387, 395, 413, 425, 473],        // 144
    [151, 295, 355, 453, 481, 501, 543, 783, 831, 973],       // 145
    [153, 335, 573, 695, 1013, 1037, 1301, 1371, 1643, 1701], // 146
    [145, 325, 387, 427, 507, 615, 657, 915, 955, 1137],      // 147
    [167, 197, 207, 347, 375, 585, 669, 675, 935, 1029],      // 148
    [31, 33, 99, 199, 313, 381, 405, 433, 631, 679],          // 149
    [3, 5, 185, 713, 803, 905, 1173, 1175, 1193, 1293],       // 150
    [195, 295, 309, 319, 445, 465, 517, 735, 775, 829],       // 151
    [17, 23, 209, 233, 303, 539, 623, 707, 989, 1199],        // 152
    [69, 145, 171, 399, 451, 553, 555, 639, 735, 885],        // 153
    [243, 371, 393, 437, 675, 773, 795, 897, 1023, 1077],     // 154
    [31, 49, 289, 381, 405, 441, 499, 511, 825, 867],         // 155
    [143, 167, 173, 195, 587, 597, 609, 767, 1017, 1343],     // 156
    [19, 133, 181, 213, 259, 333, 435, 451, 753, 861],        // 157
    [15, 155, 213, 255, 321, 527, 621, 665, 731, 755],        // 158
    [91, 241, 301, 441, 459, 475, 535, 651, 657, 777],        // 159
    [47, 57, 75, 189, 285, 383, 465, 543, 659, 843],          // 160
    [159, 399, 493, 685, 709, 765, 973, 1011, 1099, 1263],    // 161
    [101, 317, 447, 627, 767, 861, 1077, 1095, 1113, 1197],   // 162
    [55, 69, 577, 589, 621, 645, 759, 867, 915, 1111],        // 163
    [63, 155, 485, 735, 779, 957, 1037, 1085, 1175, 1253],    // 164
    [25, 61, 115, 271, 313, 361, 391, 501, 511, 699],         // 165
    [5, 237, 633, 705, 753, 935, 1133, 1341, 1343, 1665],     // 166
    [135, 471, 577, 591, 729, 771, 801, 1015, 1221, 1231],    // 167
    [257, 585, 609, 633, 909, 1143, 1253, 1385, 1467, 1649],  // 168
    [643, 675, 841, 973, 1011, 1131, 1201, 1203, 1251, 1275], // 169
    [143, 153, 195, 255, 357, 525, 605, 761, 825, 897],       // 170
    [19, 187, 231, 649, 661, 669, 691, 831, 861, 1015],       // 171
    [95, 155, 227, 525, 537, 629, 825, 855, 879, 927],        // 172
    [55, 103, 303, 313, 343, 421, 441, 511, 531, 609],        // 173
    [3, 17, 143, 153, 161, 215, 275, 411, 431, 465],          // 174
    [229, 267, 727, 837, 847, 1039, 1069, 1089, 1107, 1299],  // 175
    [233, 327, 359, 455, 495, 533, 563, 657, 743, 825],       // 176
    [339, 609, 619, 819, 859, 873, 919, 1029, 1281, 1299],    // 177
    [41, 305, 405, 557, 563, 827, 951, 1277, 1295, 1331],     // 178
    [49, 159, 205, 381, 469, 471, 507, 639, 679, 687],        // 179
    [47, 107, 189, 447, 569, 887, 929, 1287, 1547, 1823],     // 180
    [165, 199, 271, 283, 399, 511, 675, 813, 825, 969],       // 181
    [161, 233, 267, 281, 413, 605, 681, 755, 995, 1211],      // 182
    [147, 319, 357, 609, 805, 945, 985, 1125, 1159, 1225],    // 183
    [33, 59, 287, 309, 323, 963, 1145, 1187, 1203, 1233],     // 184
    [303, 321, 339, 429, 651, 723, 789, 819, 915, 1029],      // 185
    [371, 485, 677, 723, 773, 923, 1371, 1445, 1497, 1577],   // 186
    [85, 105, 391, 477, 511, 589, 805, 861, 957, 1057],       // 187
    [125, 143, 167, 173, 363, 705, 765, 855, 873, 1017],      // 188
    [25, 301, 469, 583, 591, 711, 819, 921, 951, 973],        // 189
    [11, 33, 95, 273, 651, 717, 851, 1083, 1163, 1251],       // 190
    [19, 51, 69, 139, 201, 237, 325, 769, 771, 945],          // 191
    [237, 333, 399, 489, 527, 663, 915, 945, 1059, 1143],     // 192
    [31, 123, 423, 909, 1195, 1245, 1261, 1365, 1369, 1435],  // 193
    [33, 75, 317, 393, 411, 705, 801, 987, 1185, 1191],       // 194
    [135, 915, 975, 979, 1005, 1081, 1201, 1225, 1227, 1299], // 195
    [15, 47, 215, 459, 507, 533, 585, 663, 699, 885],         // 196
    [75, 111, 169, 439, 775, 853, 1051, 1155, 1431, 1779],    // 197
    [17, 45, 417, 485, 615, 627, 801, 1263, 1265, 1295],      // 198
    [49, 189, 445, 459, 735, 909, 1021, 1065, 1707, 2047],    // 199
    [75, 117, 285, 383, 387, 635, 827, 1275, 1307, 1317],     // 200
    [55, 111, 313, 381, 385, 439, 481, 663, 679, 865],        // 201
    [183, 195, 273, 585, 845, 977, 1043, 1067, 1161, 1355],   // 202
    [159, 187, 237, 271, 495, 741, 829, 931, 957, 1101],      // 203
    [167, 249, 857, 1125, 1137, 1169, 1487, 1515, 1683, 1815], // 204
    [81, 229, 325, 343, 369, 441, 753, 825, 969, 1089],       // 205
    [5, 63, 261, 297, 393, 497, 567, 813, 885, 1017],         // 206
    [91, 157, 297, 369, 387, 429, 459, 481, 517, 871],        // 207
    [299, 423, 563, 675, 1383, 1505, 1583, 1593, 1695, 1749], // 208
    [33, 273, 301, 321, 439, 451, 493, 735, 873, 885],        // 209
    [47, 65, 165, 171, 203, 213, 503, 555, 741, 755],         // 210
    [175, 481, 495, 601, 837, 1099, 1281, 1329, 1357, 1917],  // 211
    [23, 29, 99, 149, 357, 413, 479, 497, 533, 695],          // 212
    [3, 61, 123, 513, 595, 793, 1315, 1329, 1335, 1683],      // 213
    [185, 255, 395, 447, 623, 633, 707, 743, 813, 1035],      // 214
    [157, 237, 309, 765, 897, 1081, 1147, 1189, 1377, 1477],  // 215
    [377, 479, 683, 707, 843, 1167, 1215, 1253, 1343, 1377],  // 216
    [61, 229, 369, 441, 519, 675, 729, 811, 999, 1033],       // 217
    [33, 117, 233, 243, 257, 275, 297, 341, 623, 747],        // 218
    [121, 261, 277, 355, 397, 471, 615, 685, 1105, 1189],     // 219
    [77, 167, 395, 473, 483, 585, 587, 609, 923, 963],        // 220
    [3, 133, 309, 373, 411, 573, 759, 855, 979, 999],         // 221
    [117, 263, 335, 437, 641, 647, 875, 1035, 1103, 1125],    // 222
    [235, 259, 549, 715, 777, 1125, 1221, 1225, 1417, 1621],  // 223
    [63, 363, 573, 719, 773, 857, 1025, 1223, 1227, 1253],    // 224
    [49, 81, 103, 261, 445, 489, 609, 625, 741, 825],         // 225
    [5, 77, 155, 203, 215, 417, 533, 573, 767, 833],          // 226
    [405, 441, 625, 721, 835, 855, 1017, 1149, 1479, 1507],   // 227
    [93, 149, 185, 455, 537, 549, 723, 899, 1209, 1283],      // 228
    [91, 291, 475, 531, 565, 685, 733, 775, 939, 1093],       // 229
    [27, 77, 345, 351, 831, 917, 1221, 1245, 1247, 1335],     // 230
    [165, 217, 235, 249, 345, 391, 399, 439, 481, 559],       // 231
    [567, 665, 833, 875, 1163, 1197, 1253, 1403, 1917, 2097], // 232
    [3, 159, 289, 373, 511, 531, 595, 615, 759, 1113],        // 233
    [83, 243, 257, 341, 503, 581, 593, 683, 1157, 1803],      // 234
    [15, 151, 181, 259, 451, 537, 561, 679, 727, 1167],       // 235
    [209, 455, 513, 569, 657, 875, 915, 1203, 1317, 1349],    // 236
    [181, 649, 765, 829, 949, 1449, 1515, 1633, 1689, 1711],  // 237
    [161, 215, 383, 425, 665, 731, 791, 825, 1263, 1313],     // 238
    [87, 199, 421, 531, 939, 1147, 1395, 1701, 2001, 2187],   // 239
    [467, 797, 887, 1493, 1529, 2027, 2093, 2253, 2495, 2589], // 240
    [39, 819, 1383, 2065, 2113, 2133, 2215, 2253, 2295, 2505], // 241
    [63, 267, 281, 527, 777, 945, 971, 1077, 1223, 1487],     // 242
    [9, 31, 199, 475, 507, 699, 1117, 1125, 1179, 1417],      // 243
    [189, 329, 767, 1065, 1289, 1553, 1565, 1923, 2105, 2505], // 244
    [163, 303, 489, 759, 843, 861, 1039, 1321, 1389, 1413],   // 245
    [107, 171, 243, 483, 567, 797, 945, 1155, 1617, 1697],    // 246
    [81, 309, 361, 411, 525, 571, 729, 939, 1047, 1149],      // 247
    [237, 387, 485, 603, 605, 765, 887, 1097, 1223, 1515],    // 248
    [75, 279, 385, 403, 531, 583, 595, 693, 999, 1021],       // 249
    [207, 407, 1053, 1391, 1655, 1671, 1785, 1793, 2111, 2327], // 250
    [9, 325, 355, 369, 451, 465, 615, 619, 1141, 1339],       // 251
    [129, 143, 413, 549, 705, 749, 839, 1077, 1133, 1175],    // 252
    [273, 391, 421, 1615, 1723, 1725, 1791, 1879, 1951, 2091], // 253
    [245, 521, 701, 933, 941, 1223, 1311, 1427, 1491, 1527],  // 254
    [19, 31, 475, 735, 765, 921, 949, 1285, 1311, 1351],      // 255
    [189, 357, 435, 587, 617, 923, 1053, 1299, 1539, 1883],   // 256
    [93, 363, 493, 679, 813, 819, 1861, 2113, 2211, 2233],    // 257
    [87, 1017, 1203, 1355, 1385, 1547, 1773, 2411, 2415, 2747], // 258
    [361, 417, 561, 745, 885, 987, 1069, 1071, 1159, 1305],   // 259
    [149, 597, 687, 689, 803, 983, 995, 1247, 1373, 1419],    // 260
    [223, 261, 361, 609, 1251, 1263, 1629, 1791, 2023, 2095], // 261
    [71, 287, 453, 515, 711, 1013, 1127, 1187, 1365, 1415],   // 262
    [747, 819, 939, 1017, 1101, 1297, 1665, 1767, 2337, 2679], // 263
    [275, 363, 567, 1245, 1257, 1355, 1419, 1505, 1635, 2013], // 264
    [49, 115, 139, 211, 489, 601, 1063, 1281, 1285, 1399],    // 265
    [3, 213, 365, 1115, 1611, 1851, 2171, 2177, 2273, 2477],  // 266
    [265, 427, 481, 517, 555, 595, 1099, 1381, 1449, 1797],   // 267
    [77, 329, 719, 825, 1305, 1635, 1749, 2009, 2259, 2273],  // 268
    [241, 343, 603, 615, 709, 1155, 1281, 1431, 1713, 1759],  // 269
    [53, 611, 1071, 1251, 1397, 1691, 1847, 1853, 2133, 2343], // 270
    [169, 441, 967, 1221, 1419, 2289, 2295, 2617, 2775, 2817], // 271
    [237, 287, 689, 905, 1253, 1443, 2159, 2355, 2367, 2397], // 272
    [205, 321, 345, 795, 963, 1101, 1269, 1321, 1329, 1725],  // 273
    [305, 351, 707, 785, 801, 843, 1077, 1263, 1793, 1833],   // 274
    [129, 199, 205, 651, 721, 939, 999, 1017, 1051, 1629],    // 275
    [89, 453, 473, 483, 609, 675, 915, 1133, 1287, 1295],     // 276
    [103, 181, 859, 1221, 1603, 2071, 2115, 2289, 2343, 2409], // 277
    [93, 623, 653, 665, 831, 857, 947, 1493, 1553, 1563],     // 278
    [69, 231, 535, 751, 781, 1159, 1509, 1629, 1839, 2035],   // 279
    [47, 105, 195, 725, 1077, 1415, 2105, 2199, 2805, 3029],  // 280
    [139, 259, 601, 615, 633, 663, 729, 853, 931, 1195],      // 281
    [83, 93, 237, 245, 425, 443, 503, 557, 647, 1431],        // 282
    [45, 1225, 1239, 1431, 1455, 1615, 2107, 2355, 2485, 2667], // 283
    [173, 323, 2009, 2109, 2159, 2333, 2417, 3045, 3227, 3713], // 284
    [9, 33, 735, 1081, 1243, 1641, 1839, 1879, 1965, 2245],   // 285
    [165, 521, 533, 593, 617, 915, 983, 1265, 1433, 1797],    // 286
    [115, 435, 771, 835, 937, 951, 1401, 1441, 1759, 1861],   // 287
    [167, 525, 567, 1355, 1473, 1595, 1875, 2349, 2537, 2765], // 288
    [493, 843, 945, 1383, 1489, 1621, 2083, 2143, 2575, 2649], // 289
    [47, 83, 503, 825, 1221, 1553, 1587, 1641, 1697, 1791],   // 290
    [19, 315, 427, 861, 907, 987, 1017, 1195, 1329, 2085],    // 291
    [167, 197, 207, 657, 789, 923, 977, 1623, 1655, 1967],    // 292
    [601, 1095, 1389, 1455, 1459, 1693, 1849, 1863, 2071, 2163], // 293
    [35, 135, 177, 245, 315, 515, 633, 917, 1047, 1125],      // 294
    [171, 421, 459, 511, 585, 1291, 1461, 1579, 1611, 2077],  // 295
    [285, 785, 1007, 1287, 1389, 1709, 1727, 2117, 2295, 2477], // 296
    [123, 171, 285, 333, 619, 693, 703, 859, 1273, 1501],     // 297
    [341, 483, 953, 1223, 1251, 1307, 1475, 1805, 1845, 1907], // 298
    [69, 405, 429, 675, 1015, 1017, 1105, 1137, 1167, 1539],  // 299
    [153, 185, 383, 413, 483, 539, 693, 779, 1047, 1097],     // 300
    [265, 523, 861, 1249, 1299, 1309, 1365, 1869, 1963, 1981], // 301
    [267, 293, 647, 1043, 1307, 1581, 1601, 2037, 2141, 2241], // 302
    [121, 207, 241, 249, 321, 381, 549, 637, 835, 955],       // 303
    [75, 1403, 1685, 1707, 1739, 1883, 1937, 2219, 2255, 2307], // 304
    [103, 429, 453, 1195, 1339, 1581, 2019, 2581, 2989, 3043], // 305
    [503, 947, 1017, 1797, 2063, 2093, 2175, 2597, 2655, 2817], // 306
    [99, 147, 187, 255, 319, 369, 511, 631, 879, 1021],       // 307
    [159, 189, 615, 777, 959, 1025, 1079, 1139, 1409, 1443],  // 308
    [493, 2673, 2733, 2949, 3243, 3525, 3595, 3799, 3969, 4051], // 309
    [77, 255, 635, 645, 755, 1097, 1127, 1235, 1377, 1533],   // 310
    [45, 75, 181, 199, 271, 297, 471, 789, 885, 1071],        // 311
    [203, 689, 753, 1385, 1449, 1547, 1575, 1655, 1683, 1799], // 312
    [139, 343, 439, 669, 675, 759, 915, 1893, 1993, 2371],    // 313
    [113, 453, 677, 695, 981, 1013, 1037, 1067, 1121, 1277],  // 314
    [465, 691, 1041, 1417, 1479, 1515, 1795, 2217, 2769, 2839], // 315
    [57, 243, 267, 293, 353, 399, 507, 899, 1259, 1323],      // 316
    [33, 379, 523, 609, 1009, 1065, 1351, 1521, 1773, 1821],  // 317
    [165, 275, 681, 807, 1337, 1427, 1617, 1931, 2075, 2295], // 318
    [795, 865, 1191, 1911, 2059, 2475, 2989, 3435, 3855, 4045], // 319
    [197, 743, 825, 843, 873, 1007, 1017, 1217, 1815, 2955],  // 320
    [9, 45, 609, 769, 1053, 1165, 1389, 1395, 1431, 1675],    // 321
    [11, 185, 923, 1121, 1233, 1307, 2307, 2373, 2583, 2717], // 322
    [141, 247, 309, 919, 1269, 1345, 1431, 1629, 1731, 1951], // 323
    [23, 177, 777, 923, 1055, 1299, 1329, 1385, 1449, 1799],  // 324
    [399, 433, 1051, 1219, 1261, 1485, 1701, 2013, 2349, 2413], // 325
    [101, 117, 215, 731, 1731, 1823, 1833, 1995, 2603, 2807], // 326
    [595, 951, 979, 1077, 1297, 1549, 1939, 2667, 2961, 3055], // 327
    [155, 437, 629, 693, 843, 977, 1019, 1119, 1475, 1503],   // 328
    [139, 243, 273, 339, 489, 531, 1665, 1963, 2145, 2343],   // 329
    [255, 437, 927, 1001, 1217, 1445, 1595, 1911, 3185, 3435], // 330
    [61, 459, 745, 969, 1261, 1449, 1599, 1771, 2029, 2737],  // 331
    [707, 1077, 1109, 1217, 1293, 1485, 1487, 1613, 2789, 2987], // 332
    [483, 741, 805, 913, 955, 1041, 1083, 1131, 1243, 1353],  // 333
    [243, 603, 711, 981, 1085, 1425, 1637, 1901, 1953, 2423], // 334
    [321, 511, 541, 759, 871, 1227, 1399, 1821, 2131, 2337],  // 335
    [3, 17, 303, 585, 627, 707, 723, 1047, 1413, 1479],       // 336
    [75, 1443, 1579, 1615, 1659, 1693, 1741, 1785, 1915, 2793], // 337
    [15, 275, 315, 401, 467, 603, 623, 843, 951, 1053],       // 338
    [147, 415, 751, 865, 901, 921, 1311, 1375, 1881, 1911],   // 339
    [293, 299, 437, 699, 1187, 1203, 1209, 1217, 1389, 1439], // 340
    [229, 631, 765, 861, 951, 1071, 1101, 1203, 1263, 1503],  // 341
    [65, 237, 263, 317, 707, 1017, 1085, 1353, 1517, 1755],   // 342
    [199, 291, 495, 501, 561, 589, 691, 841, 915, 1377],      // 343
    [119, 219, 527, 569, 617, 845, 993, 1079, 1107, 1253],    // 344
    [475, 493, 859, 951, 1083, 1113, 1521, 2425, 2443, 2491], // 345
    [45, 57, 197, 363, 407, 1467, 1565, 1601, 1623, 1995],    // 346
    [211, 367, 451, 1065, 1417, 1455, 1507, 1659, 1777, 2109], // 347
    [117, 143, 257, 359, 629, 759, 1085, 1295, 1469, 1533],   // 348
    [285, 433, 579, 673, 859, 895, 1009, 2071, 2175, 2419],   // 349
    [113, 131, 401, 425, 513, 555, 923, 1097, 1461, 2073],    // 350
    [61, 135, 291, 429, 691, 1159, 2139, 2155, 2901, 3517],   // 351
    [657, 879, 963, 999, 1263, 1305, 1323, 1439, 1449, 1865], // 352
    [139, 489, 523, 595, 621, 735, 1029, 1489, 1879, 1951],   // 353
    [153, 251, 525, 537, 573, 783, 1371, 1563, 1605, 1691],   // 354
    [49, 369, 589, 717, 957, 1221, 1609, 2185, 2197, 2355],   // 355
    [173, 227, 393, 759, 803, 855, 989, 1385, 1497, 1623],    // 356
    [243, 541, 739, 1033, 1075, 1105, 1621, 1725, 2575, 2739], // 357
    [671, 1005, 1161, 1211, 1247, 1365, 1491, 1793, 2681, 2957], // 358
    [411, 855, 901, 925, 1275, 1791, 2179, 2277, 2995, 3027], // 359
    [719, 1155, 1307, 1515, 1785, 1823, 2117, 2207, 2345, 2669], // 360
    [369, 663, 1779, 2539, 2691, 2793, 3501, 3751, 3909, 4173], // 361
    [605, 663, 1073, 1563, 1571, 1955, 2297, 2327, 2385, 2553], // 362
    [75, 97, 105, 111, 1287, 2251, 2341, 2391, 2481, 2511],   // 363
    [923, 1239, 1653, 1725, 1917, 1949, 2009, 2045, 2339, 2609], // 364
    [169, 261, 295, 325, 369, 493, 639, 723, 2079, 2241],     // 365
    [167, 507, 635, 657, 747, 837, 1115, 1511, 1785, 1787],   // 366
    [487, 801, 1279, 1407, 1509, 1827, 2365, 2409, 2467, 3049], // 367
    [315, 419, 785, 1139, 1289, 1953, 2567, 2595, 2799, 3107], // 368
    [25, 195, 445, 825, 1339, 1551, 1599, 1729, 1869, 1959],  // 369
    [495, 813, 1797, 1977, 2001, 2063, 2303, 2315, 2505, 2913], // 370
    [741, 747, 925, 1077, 1485, 1647, 1815, 2115, 2305, 2319], // 371
    [177, 207, 563, 797, 1749, 1997, 2247, 2475, 2615, 2873], // 372
    [333, 489, 735, 843, 1813, 2295, 2491, 3189, 3513, 3519], // 373
    [65, 153, 371, 495, 855, 987, 1433, 1983, 2235, 2247],    // 374
    [679, 979, 1089, 1119, 1669, 1767, 2065, 2547, 2635, 2697], // 375
    [57, 473, 519, 629, 1035, 1239, 1929, 2085, 2237, 2985],  // 376
    [259, 321, 511, 663, 1485, 1693, 1791, 2253, 2409, 2553], // 377
    [417, 447, 825, 1991, 2207, 2693, 2993, 3101, 3177, 3287], // 378
    [19, 99, 319, 355, 679, 711, 795, 925, 1069, 1455],       // 379
    [65, 483, 677, 723, 1133, 1139, 1175, 1263, 1347, 1469],  // 380
    [313, 735, 1203, 2209, 2629, 3033, 3055, 3091, 3315, 4003], // 381
    [105, 227, 635, 677, 963, 1083, 1641, 2085, 2243, 2411],  // 382
    [31, 187, 367, 421, 471, 567, 607, 747, 1035, 1699],      // 383
    [317, 1437, 1557, 1617, 2147, 2319, 2729, 3087, 3093, 3273], // 384
    [265, 1215, 1911, 2005, 2101, 2401, 2449, 2455, 2565, 2679], // 385
    [231, 747, 881, 923, 1287, 1611, 2493, 2735, 2837, 3633], // 386
    [615, 621, 795, 919, 1021, 1111, 1255, 1287, 1689, 2095], // 387
    [45, 63, 269, 347, 483, 525, 717, 837, 875, 959],         // 388
    [21, 51, 103, 313, 843, 871, 883, 1141, 1179, 1743],      // 389
    [137, 293, 383, 461, 1017, 1283, 1773, 2057, 2693, 3047], // 390
    [105, 127, 399, 645, 675, 1671, 1791, 2085, 2227, 2275],  // 391
    [107, 299, 623, 1035, 1389, 1437, 1589, 1827, 2285, 2607], // 392
    [93, 331, 549, 1113, 1411, 2523, 2551, 2719, 3393, 4291], // 393
    [377, 447, 987, 1161, 1497, 1571, 2043, 2187, 2303, 2615], // 394
    [531, 1137, 2161, 2205, 2215, 2907, 3055, 3151, 3481, 3655], // 395
    [605, 695, 909, 945, 1229, 1365, 1997, 2397, 2837, 3285], // 396
    [81, 463, 673, 1071, 1165, 1425, 1905, 1999, 2061, 2133], // 397
    [131, 231, 777, 951, 1457, 1547, 1673, 1893, 2145, 2241], // 398
    [91, 219, 937, 1731, 2749, 2875, 3201, 3489, 3729, 4149], // 399
    [593, 663, 767, 879, 1205, 2457, 3107, 3195, 3263, 3267], // 400
];