blob: 8702741a404e8580003def6c2da75e228e3c42a0 [file] [log] [blame]
#[deny(overflowing_literals)]
pub(crate) static BASES_16: [(u16, usize); 257] = [
(0, 0), // 0
(0, 0), // 1
(0, 0), // 2
(59049, 10), // 3
(0, 0), // 4
(15625, 6), // 5
(46656, 6), // 6
(16807, 5), // 7
(0, 0), // 8
(59049, 5), // 9
(10000, 4), // 10
(14641, 4), // 11
(20736, 4), // 12
(28561, 4), // 13
(38416, 4), // 14
(50625, 4), // 15
(0, 0), // 16
(4913, 3), // 17
(5832, 3), // 18
(6859, 3), // 19
(8000, 3), // 20
(9261, 3), // 21
(10648, 3), // 22
(12167, 3), // 23
(13824, 3), // 24
(15625, 3), // 25
(17576, 3), // 26
(19683, 3), // 27
(21952, 3), // 28
(24389, 3), // 29
(27000, 3), // 30
(29791, 3), // 31
(0, 0), // 32
(35937, 3), // 33
(39304, 3), // 34
(42875, 3), // 35
(46656, 3), // 36
(50653, 3), // 37
(54872, 3), // 38
(59319, 3), // 39
(64000, 3), // 40
(1681, 2), // 41
(1764, 2), // 42
(1849, 2), // 43
(1936, 2), // 44
(2025, 2), // 45
(2116, 2), // 46
(2209, 2), // 47
(2304, 2), // 48
(2401, 2), // 49
(2500, 2), // 50
(2601, 2), // 51
(2704, 2), // 52
(2809, 2), // 53
(2916, 2), // 54
(3025, 2), // 55
(3136, 2), // 56
(3249, 2), // 57
(3364, 2), // 58
(3481, 2), // 59
(3600, 2), // 60
(3721, 2), // 61
(3844, 2), // 62
(3969, 2), // 63
(0, 0), // 64
(4225, 2), // 65
(4356, 2), // 66
(4489, 2), // 67
(4624, 2), // 68
(4761, 2), // 69
(4900, 2), // 70
(5041, 2), // 71
(5184, 2), // 72
(5329, 2), // 73
(5476, 2), // 74
(5625, 2), // 75
(5776, 2), // 76
(5929, 2), // 77
(6084, 2), // 78
(6241, 2), // 79
(6400, 2), // 80
(6561, 2), // 81
(6724, 2), // 82
(6889, 2), // 83
(7056, 2), // 84
(7225, 2), // 85
(7396, 2), // 86
(7569, 2), // 87
(7744, 2), // 88
(7921, 2), // 89
(8100, 2), // 90
(8281, 2), // 91
(8464, 2), // 92
(8649, 2), // 93
(8836, 2), // 94
(9025, 2), // 95
(9216, 2), // 96
(9409, 2), // 97
(9604, 2), // 98
(9801, 2), // 99
(10000, 2), // 100
(10201, 2), // 101
(10404, 2), // 102
(10609, 2), // 103
(10816, 2), // 104
(11025, 2), // 105
(11236, 2), // 106
(11449, 2), // 107
(11664, 2), // 108
(11881, 2), // 109
(12100, 2), // 110
(12321, 2), // 111
(12544, 2), // 112
(12769, 2), // 113
(12996, 2), // 114
(13225, 2), // 115
(13456, 2), // 116
(13689, 2), // 117
(13924, 2), // 118
(14161, 2), // 119
(14400, 2), // 120
(14641, 2), // 121
(14884, 2), // 122
(15129, 2), // 123
(15376, 2), // 124
(15625, 2), // 125
(15876, 2), // 126
(16129, 2), // 127
(0, 0), // 128
(16641, 2), // 129
(16900, 2), // 130
(17161, 2), // 131
(17424, 2), // 132
(17689, 2), // 133
(17956, 2), // 134
(18225, 2), // 135
(18496, 2), // 136
(18769, 2), // 137
(19044, 2), // 138
(19321, 2), // 139
(19600, 2), // 140
(19881, 2), // 141
(20164, 2), // 142
(20449, 2), // 143
(20736, 2), // 144
(21025, 2), // 145
(21316, 2), // 146
(21609, 2), // 147
(21904, 2), // 148
(22201, 2), // 149
(22500, 2), // 150
(22801, 2), // 151
(23104, 2), // 152
(23409, 2), // 153
(23716, 2), // 154
(24025, 2), // 155
(24336, 2), // 156
(24649, 2), // 157
(24964, 2), // 158
(25281, 2), // 159
(25600, 2), // 160
(25921, 2), // 161
(26244, 2), // 162
(26569, 2), // 163
(26896, 2), // 164
(27225, 2), // 165
(27556, 2), // 166
(27889, 2), // 167
(28224, 2), // 168
(28561, 2), // 169
(28900, 2), // 170
(29241, 2), // 171
(29584, 2), // 172
(29929, 2), // 173
(30276, 2), // 174
(30625, 2), // 175
(30976, 2), // 176
(31329, 2), // 177
(31684, 2), // 178
(32041, 2), // 179
(32400, 2), // 180
(32761, 2), // 181
(33124, 2), // 182
(33489, 2), // 183
(33856, 2), // 184
(34225, 2), // 185
(34596, 2), // 186
(34969, 2), // 187
(35344, 2), // 188
(35721, 2), // 189
(36100, 2), // 190
(36481, 2), // 191
(36864, 2), // 192
(37249, 2), // 193
(37636, 2), // 194
(38025, 2), // 195
(38416, 2), // 196
(38809, 2), // 197
(39204, 2), // 198
(39601, 2), // 199
(40000, 2), // 200
(40401, 2), // 201
(40804, 2), // 202
(41209, 2), // 203
(41616, 2), // 204
(42025, 2), // 205
(42436, 2), // 206
(42849, 2), // 207
(43264, 2), // 208
(43681, 2), // 209
(44100, 2), // 210
(44521, 2), // 211
(44944, 2), // 212
(45369, 2), // 213
(45796, 2), // 214
(46225, 2), // 215
(46656, 2), // 216
(47089, 2), // 217
(47524, 2), // 218
(47961, 2), // 219
(48400, 2), // 220
(48841, 2), // 221
(49284, 2), // 222
(49729, 2), // 223
(50176, 2), // 224
(50625, 2), // 225
(51076, 2), // 226
(51529, 2), // 227
(51984, 2), // 228
(52441, 2), // 229
(52900, 2), // 230
(53361, 2), // 231
(53824, 2), // 232
(54289, 2), // 233
(54756, 2), // 234
(55225, 2), // 235
(55696, 2), // 236
(56169, 2), // 237
(56644, 2), // 238
(57121, 2), // 239
(57600, 2), // 240
(58081, 2), // 241
(58564, 2), // 242
(59049, 2), // 243
(59536, 2), // 244
(60025, 2), // 245
(60516, 2), // 246
(61009, 2), // 247
(61504, 2), // 248
(62001, 2), // 249
(62500, 2), // 250
(63001, 2), // 251
(63504, 2), // 252
(64009, 2), // 253
(64516, 2), // 254
(65025, 2), // 255
(0, 0), // 256
];
#[deny(overflowing_literals)]
pub(crate) static BASES_32: [(u32, usize); 257] = [
(0, 0), // 0
(0, 0), // 1
(0, 0), // 2
(3486784401, 20), // 3
(0, 0), // 4
(1220703125, 13), // 5
(2176782336, 12), // 6
(1977326743, 11), // 7
(0, 0), // 8
(3486784401, 10), // 9
(1000000000, 9), // 10
(2357947691, 9), // 11
(429981696, 8), // 12
(815730721, 8), // 13
(1475789056, 8), // 14
(2562890625, 8), // 15
(0, 0), // 16
(410338673, 7), // 17
(612220032, 7), // 18
(893871739, 7), // 19
(1280000000, 7), // 20
(1801088541, 7), // 21
(2494357888, 7), // 22
(3404825447, 7), // 23
(191102976, 6), // 24
(244140625, 6), // 25
(308915776, 6), // 26
(387420489, 6), // 27
(481890304, 6), // 28
(594823321, 6), // 29
(729000000, 6), // 30
(887503681, 6), // 31
(0, 0), // 32
(1291467969, 6), // 33
(1544804416, 6), // 34
(1838265625, 6), // 35
(2176782336, 6), // 36
(2565726409, 6), // 37
(3010936384, 6), // 38
(3518743761, 6), // 39
(4096000000, 6), // 40
(115856201, 5), // 41
(130691232, 5), // 42
(147008443, 5), // 43
(164916224, 5), // 44
(184528125, 5), // 45
(205962976, 5), // 46
(229345007, 5), // 47
(254803968, 5), // 48
(282475249, 5), // 49
(312500000, 5), // 50
(345025251, 5), // 51
(380204032, 5), // 52
(418195493, 5), // 53
(459165024, 5), // 54
(503284375, 5), // 55
(550731776, 5), // 56
(601692057, 5), // 57
(656356768, 5), // 58
(714924299, 5), // 59
(777600000, 5), // 60
(844596301, 5), // 61
(916132832, 5), // 62
(992436543, 5), // 63
(0, 0), // 64
(1160290625, 5), // 65
(1252332576, 5), // 66
(1350125107, 5), // 67
(1453933568, 5), // 68
(1564031349, 5), // 69
(1680700000, 5), // 70
(1804229351, 5), // 71
(1934917632, 5), // 72
(2073071593, 5), // 73
(2219006624, 5), // 74
(2373046875, 5), // 75
(2535525376, 5), // 76
(2706784157, 5), // 77
(2887174368, 5), // 78
(3077056399, 5), // 79
(3276800000, 5), // 80
(3486784401, 5), // 81
(3707398432, 5), // 82
(3939040643, 5), // 83
(4182119424, 5), // 84
(52200625, 4), // 85
(54700816, 4), // 86
(57289761, 4), // 87
(59969536, 4), // 88
(62742241, 4), // 89
(65610000, 4), // 90
(68574961, 4), // 91
(71639296, 4), // 92
(74805201, 4), // 93
(78074896, 4), // 94
(81450625, 4), // 95
(84934656, 4), // 96
(88529281, 4), // 97
(92236816, 4), // 98
(96059601, 4), // 99
(100000000, 4), // 100
(104060401, 4), // 101
(108243216, 4), // 102
(112550881, 4), // 103
(116985856, 4), // 104
(121550625, 4), // 105
(126247696, 4), // 106
(131079601, 4), // 107
(136048896, 4), // 108
(141158161, 4), // 109
(146410000, 4), // 110
(151807041, 4), // 111
(157351936, 4), // 112
(163047361, 4), // 113
(168896016, 4), // 114
(174900625, 4), // 115
(181063936, 4), // 116
(187388721, 4), // 117
(193877776, 4), // 118
(200533921, 4), // 119
(207360000, 4), // 120
(214358881, 4), // 121
(221533456, 4), // 122
(228886641, 4), // 123
(236421376, 4), // 124
(244140625, 4), // 125
(252047376, 4), // 126
(260144641, 4), // 127
(0, 0), // 128
(276922881, 4), // 129
(285610000, 4), // 130
(294499921, 4), // 131
(303595776, 4), // 132
(312900721, 4), // 133
(322417936, 4), // 134
(332150625, 4), // 135
(342102016, 4), // 136
(352275361, 4), // 137
(362673936, 4), // 138
(373301041, 4), // 139
(384160000, 4), // 140
(395254161, 4), // 141
(406586896, 4), // 142
(418161601, 4), // 143
(429981696, 4), // 144
(442050625, 4), // 145
(454371856, 4), // 146
(466948881, 4), // 147
(479785216, 4), // 148
(492884401, 4), // 149
(506250000, 4), // 150
(519885601, 4), // 151
(533794816, 4), // 152
(547981281, 4), // 153
(562448656, 4), // 154
(577200625, 4), // 155
(592240896, 4), // 156
(607573201, 4), // 157
(623201296, 4), // 158
(639128961, 4), // 159
(655360000, 4), // 160
(671898241, 4), // 161
(688747536, 4), // 162
(705911761, 4), // 163
(723394816, 4), // 164
(741200625, 4), // 165
(759333136, 4), // 166
(777796321, 4), // 167
(796594176, 4), // 168
(815730721, 4), // 169
(835210000, 4), // 170
(855036081, 4), // 171
(875213056, 4), // 172
(895745041, 4), // 173
(916636176, 4), // 174
(937890625, 4), // 175
(959512576, 4), // 176
(981506241, 4), // 177
(1003875856, 4), // 178
(1026625681, 4), // 179
(1049760000, 4), // 180
(1073283121, 4), // 181
(1097199376, 4), // 182
(1121513121, 4), // 183
(1146228736, 4), // 184
(1171350625, 4), // 185
(1196883216, 4), // 186
(1222830961, 4), // 187
(1249198336, 4), // 188
(1275989841, 4), // 189
(1303210000, 4), // 190
(1330863361, 4), // 191
(1358954496, 4), // 192
(1387488001, 4), // 193
(1416468496, 4), // 194
(1445900625, 4), // 195
(1475789056, 4), // 196
(1506138481, 4), // 197
(1536953616, 4), // 198
(1568239201, 4), // 199
(1600000000, 4), // 200
(1632240801, 4), // 201
(1664966416, 4), // 202
(1698181681, 4), // 203
(1731891456, 4), // 204
(1766100625, 4), // 205
(1800814096, 4), // 206
(1836036801, 4), // 207
(1871773696, 4), // 208
(1908029761, 4), // 209
(1944810000, 4), // 210
(1982119441, 4), // 211
(2019963136, 4), // 212
(2058346161, 4), // 213
(2097273616, 4), // 214
(2136750625, 4), // 215
(2176782336, 4), // 216
(2217373921, 4), // 217
(2258530576, 4), // 218
(2300257521, 4), // 219
(2342560000, 4), // 220
(2385443281, 4), // 221
(2428912656, 4), // 222
(2472973441, 4), // 223
(2517630976, 4), // 224
(2562890625, 4), // 225
(2608757776, 4), // 226
(2655237841, 4), // 227
(2702336256, 4), // 228
(2750058481, 4), // 229
(2798410000, 4), // 230
(2847396321, 4), // 231
(2897022976, 4), // 232
(2947295521, 4), // 233
(2998219536, 4), // 234
(3049800625, 4), // 235
(3102044416, 4), // 236
(3154956561, 4), // 237
(3208542736, 4), // 238
(3262808641, 4), // 239
(3317760000, 4), // 240
(3373402561, 4), // 241
(3429742096, 4), // 242
(3486784401, 4), // 243
(3544535296, 4), // 244
(3603000625, 4), // 245
(3662186256, 4), // 246
(3722098081, 4), // 247
(3782742016, 4), // 248
(3844124001, 4), // 249
(3906250000, 4), // 250
(3969126001, 4), // 251
(4032758016, 4), // 252
(4097152081, 4), // 253
(4162314256, 4), // 254
(4228250625, 4), // 255
(0, 0), // 256
];
#[deny(overflowing_literals)]
pub(crate) static BASES_64: [(u64, usize); 257] = [
(0, 0), // 0
(0, 0), // 1
(0, 0), // 2
(12157665459056928801, 40), // 3
(0, 0), // 4
(7450580596923828125, 27), // 5
(4738381338321616896, 24), // 6
(3909821048582988049, 22), // 7
(0, 0), // 8
(12157665459056928801, 20), // 9
(10000000000000000000, 19), // 10
(5559917313492231481, 18), // 11
(2218611106740436992, 17), // 12
(8650415919381337933, 17), // 13
(2177953337809371136, 16), // 14
(6568408355712890625, 16), // 15
(0, 0), // 16
(2862423051509815793, 15), // 17
(6746640616477458432, 15), // 18
(15181127029874798299, 15), // 19
(1638400000000000000, 14), // 20
(3243919932521508681, 14), // 21
(6221821273427820544, 14), // 22
(11592836324538749809, 14), // 23
(876488338465357824, 13), // 24
(1490116119384765625, 13), // 25
(2481152873203736576, 13), // 26
(4052555153018976267, 13), // 27
(6502111422497947648, 13), // 28
(10260628712958602189, 13), // 29
(15943230000000000000, 13), // 30
(787662783788549761, 12), // 31
(0, 0), // 32
(1667889514952984961, 12), // 33
(2386420683693101056, 12), // 34
(3379220508056640625, 12), // 35
(4738381338321616896, 12), // 36
(6582952005840035281, 12), // 37
(9065737908494995456, 12), // 38
(12381557655576425121, 12), // 39
(16777216000000000000, 12), // 40
(550329031716248441, 11), // 41
(717368321110468608, 11), // 42
(929293739471222707, 11), // 43
(1196683881290399744, 11), // 44
(1532278301220703125, 11), // 45
(1951354384207722496, 11), // 46
(2472159215084012303, 11), // 47
(3116402981210161152, 11), // 48
(3909821048582988049, 11), // 49
(4882812500000000000, 11), // 50
(6071163615208263051, 11), // 51
(7516865509350965248, 11), // 52
(9269035929372191597, 11), // 53
(11384956040305711104, 11), // 54
(13931233916552734375, 11), // 55
(16985107389382393856, 11), // 56
(362033331456891249, 10), // 57
(430804206899405824, 10), // 58
(511116753300641401, 10), // 59
(604661760000000000, 10), // 60
(713342911662882601, 10), // 61
(839299365868340224, 10), // 62
(984930291881790849, 10), // 63
(0, 0), // 64
(1346274334462890625, 10), // 65
(1568336880910795776, 10), // 66
(1822837804551761449, 10), // 67
(2113922820157210624, 10), // 68
(2446194060654759801, 10), // 69
(2824752490000000000, 10), // 70
(3255243551009881201, 10), // 71
(3743906242624487424, 10), // 72
(4297625829703557649, 10), // 73
(4923990397355877376, 10), // 74
(5631351470947265625, 10), // 75
(6428888932339941376, 10), // 76
(7326680472586200649, 10), // 77
(8335775831236199424, 10), // 78
(9468276082626847201, 10), // 79
(10737418240000000000, 10), // 80
(12157665459056928801, 10), // 81
(13744803133596058624, 10), // 82
(15516041187205853449, 10), // 83
(17490122876598091776, 10), // 84
(231616946283203125, 9), // 85
(257327417311663616, 9), // 86
(285544154243029527, 9), // 87
(316478381828866048, 9), // 88
(350356403707485209, 9), // 89
(387420489000000000, 9), // 90
(427929800129788411, 9), // 91
(472161363286556672, 9), // 92
(520411082988487293, 9), // 93
(572994802228616704, 9), // 94
(630249409724609375, 9), // 95
(692533995824480256, 9), // 96
(760231058654565217, 9), // 97
(833747762130149888, 9), // 98
(913517247483640899, 9), // 99
(1000000000000000000, 9), // 100
(1093685272684360901, 9), // 101
(1195092568622310912, 9), // 102
(1304773183829244583, 9), // 103
(1423311812421484544, 9), // 104
(1551328215978515625, 9), // 105
(1689478959002692096, 9), // 106
(1838459212420154507, 9), // 107
(1999004627104432128, 9), // 108
(2171893279442309389, 9), // 109
(2357947691000000000, 9), // 110
(2558036924386500591, 9), // 111
(2773078757450186752, 9), // 112
(3004041937984268273, 9), // 113
(3251948521156637184, 9), // 114
(3517876291919921875, 9), // 115
(3802961274698203136, 9), // 116
(4108400332687853397, 9), // 117
(4435453859151328768, 9), // 118
(4785448563124474679, 9), // 119
(5159780352000000000, 9), // 120
(5559917313492231481, 9), // 121
(5987402799531080192, 9), // 122
(6443858614676334363, 9), // 123
(6930988311686938624, 9), // 124
(7450580596923828125, 9), // 125
(8004512848309157376, 9), // 126
(8594754748609397887, 9), // 127
(0, 0), // 128
(9892530380752880769, 9), // 129
(10604499373000000000, 9), // 130
(11361656654439817571, 9), // 131
(12166492167065567232, 9), // 132
(13021612539908538853, 9), // 133
(13929745610903012864, 9), // 134
(14893745087865234375, 9), // 135
(15916595351771938816, 9), // 136
(17001416405572203977, 9), // 137
(18151468971815029248, 9), // 138
(139353667211683681, 8), // 139
(147578905600000000, 8), // 140
(156225851787813921, 8), // 141
(165312903998914816, 8), // 142
(174859124550883201, 8), // 143
(184884258895036416, 8), // 144
(195408755062890625, 8), // 145
(206453783524884736, 8), // 146
(218041257467152161, 8), // 147
(230193853492166656, 8), // 148
(242935032749128801, 8), // 149
(256289062500000000, 8), // 150
(270281038127131201, 8), // 151
(284936905588473856, 8), // 152
(300283484326400961, 8), // 153
(316348490636206336, 8), // 154
(333160561500390625, 8), // 155
(350749278894882816, 8), // 156
(369145194573386401, 8), // 157
(388379855336079616, 8), // 158
(408485828788939521, 8), // 159
(429496729600000000, 8), // 160
(451447246258894081, 8), // 161
(474373168346071296, 8), // 162
(498311414318121121, 8), // 163
(523300059815673856, 8), // 164
(549378366500390625, 8), // 165
(576586811427594496, 8), // 166
(604967116961135041, 8), // 167
(634562281237118976, 8), // 168
(665416609183179841, 8), // 169
(697575744100000000, 8), // 170
(731086699811838561, 8), // 171
(765997893392859136, 8), // 172
(802359178476091681, 8), // 173
(840221879151902976, 8), // 174
(879638824462890625, 8), // 175
(920664383502155776, 8), // 176
(963354501121950081, 8), // 177
(1007766734259732736, 8), // 178
(1053960288888713761, 8), // 179
(1101996057600000000, 8), // 180
(1151936657823500641, 8), // 181
(1203846470694789376, 8), // 182
(1257791680575160641, 8), // 183
(1313840315232157696, 8), // 184
(1372062286687890625, 8), // 185
(1432529432742502656, 8), // 186
(1495315559180183521, 8), // 187
(1560496482665168896, 8), // 188
(1628150074335205281, 8), // 189
(1698356304100000000, 8), // 190
(1771197285652216321, 8), // 191
(1846757322198614016, 8), // 192
(1925122952918976001, 8), // 193
(2006383000160502016, 8), // 194
(2090628617375390625, 8), // 195
(2177953337809371136, 8), // 196
(2268453123948987361, 8), // 197
(2362226417735475456, 8), // 198
(2459374191553118401, 8), // 199
(2560000000000000000, 8), // 200
(2664210032449121601, 8), // 201
(2772113166407885056, 8), // 202
(2883821021683985761, 8), // 203
(2999448015365799936, 8), // 204
(3119111417625390625, 8), // 205
(3242931408352297216, 8), // 206
(3371031134626313601, 8), // 207
(3503536769037500416, 8), // 208
(3640577568861717121, 8), // 209
(3782285936100000000, 8), // 210
(3928797478390152481, 8), // 211
(4080251070798954496, 8), // 212
(4236788918503437921, 8), // 213
(4398556620369715456, 8), // 214
(4565703233437890625, 8), // 215
(4738381338321616896, 8), // 216
(4916747105530914241, 8), // 217
(5100960362726891776, 8), // 218
(5291184662917065441, 8), // 219
(5487587353600000000, 8), // 220
(5690339646868044961, 8), // 221
(5899616690476974336, 8), // 222
(6115597639891380481, 8), // 223
(6338465731314712576, 8), // 224
(6568408355712890625, 8), // 225
(6805617133840466176, 8), // 226
(7050287992278341281, 8), // 227
(7302621240492097536, 8), // 228
(7562821648920027361, 8), // 229
(7831098528100000000, 8), // 230
(8107665808844335041, 8), // 231
(8392742123471896576, 8), // 232
(8686550888106661441, 8), // 233
(8989320386052055296, 8), // 234
(9301283852250390625, 8), // 235
(9622679558836781056, 8), // 236
(9953750901796946721, 8), // 237
(10294746488738365696, 8), // 238
(10645920227784266881, 8), // 239
(11007531417600000000, 8), // 240
(11379844838561358721, 8), // 241
(11763130845074473216, 8), // 242
(12157665459056928801, 8), // 243
(12563730464589807616, 8), // 244
(12981613503750390625, 8), // 245
(13411608173635297536, 8), // 246
(13854014124583882561, 8), // 247
(14309137159611744256, 8), // 248
(14777289335064248001, 8), // 249
(15258789062500000000, 8), // 250
(15753961211814252001, 8), // 251
(16263137215612256256, 8), // 252
(16786655174842630561, 8), // 253
(17324859965700833536, 8), // 254
(17878103347812890625, 8), // 255
(0, 0), // 256
];