1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22 #pragma ident "%Z%%M% %I% %E% SMI" 23 24 /* 25 * Copyright (c) 1988 by Sun Microsystems, Inc. 26 */ 27 28 #include "base_conversion.h" 29 30 unsigned short _max_tiny_powers_ten = 4; 31 unsigned short _tiny_powers_ten[] = {1, /* begin powers of 10 in 32 * base 65536 */ 33 /* 10**1 = */ 10, /* * 65536**0 */ 34 /* 10**2 = */ 100, /* * 65536**1 */ 35 /* 10**3 = */ 1000, /* * 65536**1 */ 36 0 } ; 37 38 unsigned short _start_tiny_powers_ten[] = { 39 0, 1, 2, 3, 4, 40 0}; /* end _start_tiny_powers_ten */ 41 42 unsigned short _leading_zeros_tiny_powers_ten[] = { 43 0, 0, 0, 0, 44 0}; /* end _leading_zeros_tiny_powers_ten */ 45 46 unsigned short _max_tiny_powers_two = 16; 47 unsigned short _tiny_powers_two[] = {1, /* begin powers of 2 in 48 * base 10000 */ 49 /* 2**1 = */ 2, /* * 10000**0 */ 50 /* 2**2 = */ 4, /* * 10000**0 */ 51 /* 2**3 = */ 8, /* * 10000**0 */ 52 /* 2**4 = */ 16, /* * 10000**0 */ 53 /* 2**5 = */ 32, /* * 10000**0 */ 54 /* 2**6 = */ 64, /* * 10000**0 */ 55 /* 2**7 = */ 128, /* * 10000**0 */ 56 /* 2**8 = */ 256, /* * 10000**0 */ 57 /* 2**9 = */ 512, /* * 10000**0 */ 58 /* 2**10 = */ 1024, /* * 10000**0 */ 59 /* 2**11 = */ 2048, /* * 10000**0 */ 60 /* 2**12 = */ 4096, /* * 10000**0 */ 61 /* 2**13 = */ 8192, /* * 10000**0 */ 62 /* 2**14 = */ 6384, 1, /* * 10000**1 */ 63 /* 2**15 = */ 2768, 3, /* * 10000**1 */ 64 0}; 65 66 unsigned short _start_tiny_powers_two[] = { 67 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 68 0}; /* end _start_tiny_powers_two */ 69 70 unsigned short _max_small_powers_ten = 90; 71 unsigned short _small_powers_ten[] = {1, /* begin powers of 10000 in 72 * base 65536 */ 73 /* 10000**1 = */ 10000, /* * 65536**0 */ 74 /* 10000**2 = */ 57600, 1525, /* * 65536**1 */ 75 /* 10000**3 = */ 4096, 54437, 232, /* * 65536**2 */ 76 /* 10000**4 = 65536**1 * */ 28609, 34546, 35, /* * 65536**3 */ 77 /* 10000**5 = 65536**1 * */ 25360, 24109, 27591, 5, /* * 65536**4 */ 78 /* 10000**6 = 65536**1 * */ 41216, 52461, 7118, 54210, /* * 65536**4 */ 79 /* 10000**7 = 65536**1 * */ 4096, 609, 15909, 52830, 8271, /* * 65536**5 */ 80 /* 10000**8 = 65536**2 * */ 61313, 34220, 16731, 11629, 1262, /* * 65536**6 */ 81 /* 10000**9 = 65536**2 * */ 40720, 45899, 1813, 31689, 38862, 192, /* * 65536**7 */ 82 /* 10000**10 = 65536**2 * */ 24832, 47605, 49067, 23716, 61891, 25385, 29, /* * 65536**8 */ 83 /* 10000**11 = 65536**2 * */ 4096, 285, 9232, 58239, 57170, 38515, 31729, 4, 84 /* * 65536**9 */ 85 /* 10000**12 = 65536**3 * */ 32577, 45355, 38512, 38358, 3651, 36101, 44841, /* * 65536**9 */ 86 /* 10000**13 = 65536**3 * */ 56080, 45850, 37384, 3668, 12301, 38269, 18196, 6842, 87 /* * 65536**10 */ 88 /* 10000**14 = 65536**3 * */ 8448, 18701, 29652, 51080, 65023, 27172, 37903, 3192, 89 1044, /* * 65536**11 */ 90 /* 10000**15 = 65536**3 * */ 4096, 37081, 37989, 16940, 55138, 17665, 39458, 9751, 91 20263, 159, /* * 65536**12 */ 92 /* 10000**16 = 65536**4 * */ 7937, 49002, 60772, 28216, 38893, 55975, 63988, 59711, 93 20227, 24, /* * 65536**13 */ 94 /* 10000**17 = 65536**4 * */ 5904, 8539, 12149, 36793, 43681, 12958, 60573, 21267, 95 35015, 46478, 3, /* * 65536**14 */ 96 /* 10000**18 = 65536**4 * */ 57600, 63028, 53094, 12749, 18174, 21993, 48265, 14922, 97 59933, 4030, 37092, /* * 65536**14 */ 98 /* 10000**19 = 65536**4 * */ 4096, 29077, 42481, 30581, 10617, 59493, 46251, 1892, 99 5557, 4505, 52391, 5659,/* * 65536**15 */ 100 /* 10000**20 = 65536**5 * */ 52929, 10084, 25506, 6346, 61348, 31525, 52689, 61296, 101 27615, 15903, 40426, 863, /* * 65536**16 */ 102 /* 10000**21 = 65536**5 * */ 21264, 53708, 60962, 25043, 64008, 31200, 50906, 9831, 103 56185, 43877, 36378, 50952, 131, /* * 65536**17 */ 104 /* 10000**22 = 65536**5 * */ 41216, 15724, 12323, 26246, 59245, 58406, 46648, 13767, 105 11372, 15053, 61895, 48686, 7054, 20, /* * 65536**18 */ 106 /* 10000**23 = 65536**5 * */ 4096, 25425, 24719, 55736, 8564, 12208, 3664, 51518, 107 17140, 61079, 30312, 2500, 30693, 4468, 3, /* * 65536**19 */ 108 /* 10000**24 = 65536**6 * */ 36481, 57623, 45627, 58488, 53274, 7238, 2063, 31221, 109 62631, 25319, 35409, 25293, 54667, 30681, /* * 65536**19 */ 110 /* 10000**25 = 65536**6 * */ 36624, 43054, 17160, 43698, 6780, 36385, 52800, 62346, 111 52747, 33988, 2855, 31979, 38083, 44325, 4681, /* * 65536**20 */ 112 /* 10000**26 = 65536**6 * */ 24832, 39604, 33321, 54106, 42443, 60698, 47535, 24088, 113 45785, 18352, 47026, 40291, 5183, 35843, 24059, 714, 114 /* * 65536**21 */ 115 /* 10000**27 = 65536**6 * */ 4096, 9741, 31019, 65404, 27119, 57580, 26653, 42453, 116 19179, 26186, 42000, 1847, 62708, 14406, 12813, 247, 117 109, /* * 65536**22 */ 118 /* 10000**28 = 65536**7 * */ 24129, 9598, 60989, 12011, 4842, 3874, 57395, 38141, 119 46606, 49307, 60792, 31833, 21440, 9318, 47123, 41461, 120 16, /* * 65536**23 */ 121 /* 10000**29 = 65536**7 * */ 51984, 38977, 13448, 57354, 56264, 8962, 51839, 64773, 122 39323, 49783, 15587, 30924, 36601, 56615, 27581, 36454, 123 35254, 2, /* * 65536**24 */ 124 /* 10000**30 = 65536**7 * */ 8448, 35340, 6075, 36516, 22191, 40873, 1607, 45622, 125 23883, 24544, 32988, 43530, 61694, 55616, 43150, 32976, 126 27418, 25379, /* * 65536**24 */ 127 /* 10000**31 = 65536**7 * */ 4096, 31177, 3520, 59871, 10675, 50890, 19916, 24149, 128 23777, 11324, 41057, 14921, 56274, 30917, 19462, 54968, 129 47943, 38791, 3872, /* * 65536**25 */ 130 /* 10000**32 = 65536**8 * */ 15873, 11925, 39177, 991, 14589, 3861, 58415, 9076, 131 62956, 54223, 56328, 50180, 45274, 48333, 32537, 42547, 132 9731, 59679, 590, /* * 65536**26 */ 133 /* 10000**33 = 65536**8 * */ 1808, 42438, 63147, 20041, 7015, 11522, 28221, 1553, 134 22569, 60278, 6353, 64979, 24968, 8908, 56671, 15252, 135 61068, 20668, 10866, 90,/* * 65536**27 */ 136 /* 10000**34 = 65536**8 * */ 57600, 34675, 37115, 10547, 29538, 8782, 13742, 2274, 137 49789, 48851, 34813, 1529, 63291, 20385, 21567, 26375, 138 17879, 54310, 4465, 49690, 13, /* * 65536**28 */ 139 /* 10000**35 = 65536**8 * */ 4096, 7813, 24923, 28239, 10857, 6267, 57884, 1104, 140 13355, 12253, 10222, 25424, 29081, 42697, 59670, 36426, 141 11816, 5896, 28271, 6729, 6510, 2, /* * 65536**29 */ 142 /* 10000**36 = 65536**9 * */ 11713, 63320, 64714, 46692, 19240, 27004, 38784, 53336, 143 45253, 51245, 27415, 30647, 7397, 1235, 20017, 4150, 144 44939, 54131, 54377, 23778, 20993, /* * 65536**29 */ 145 /* 10000**37 = 65536**9 * */ 17168, 58491, 47197, 51410, 58964, 34615, 2072, 33950, 146 12058, 30921, 20731, 27847, 50068, 30360, 23244, 18766, 147 10281, 55033, 26067, 23689, 21820, 3203, /* * 65536**30 */ 148 /* 10000**38 = 65536**9 * */ 41216, 3819, 54189, 42817, 20452, 63381, 15905, 23836, 149 64476, 12991, 24350, 10699, 54745, 44887, 53976, 33978, 150 52415, 25776, 41725, 46873, 34270, 51761, 488, /* * 65536**31 */ 151 /* 10000**39 = 65536**9 * */ 4096, 54337, 38934, 31580, 54213, 14464, 3799, 7995, 152 20469, 27486, 35742, 38963, 29424, 22289, 12353, 49612, 153 63792, 14909, 51757, 22894, 19408, 11901, 38234, 74, 154 /* * 65536**32 */ 155 /* 10000**40 = 65536**10 * */ 11649, 64451, 53492, 21026, 10320, 46863, 62195, 22291, 156 5139, 56386, 23933, 54841, 6553, 63577, 14364, 146, 157 5334, 34483, 30649, 31397, 65121, 4791, 24938, 11, 158 /* * 65536**33 */ 159 /* 10000**41 = 65536**10 * */ 32528, 30753, 25002, 28674, 49544, 49174, 20510, 31554, 160 13177, 54576, 1131, 8404, 2368, 6264, 60325, 20399, 161 59254, 45917, 48925, 57236, 49094, 13120, 16251, 48269, 162 1, /* * 65536**34 */ 163 /* 10000**42 = 65536**10 * */ 24832, 40051, 4852, 23815, 57751, 30951, 45359, 52825, 164 47454, 43738, 46135, 23020, 22786, 53481, 57611, 51172, 165 32136, 33825, 30766, 41577, 18557, 4419, 48258, 19839, 166 17365, /* * 65536**34 */ 167 /* 10000**43 = 65536**10 * */ 4096, 23293, 29471, 58452, 10401, 57820, 20066, 36761, 168 1884, 65513, 48769, 44607, 60376, 39716, 56720, 23702, 169 44800, 23607, 39177, 14310, 43928, 21567, 39106, 19891, 170 48163, 2649, /* * 65536**35 */ 171 /* 10000**44 = 65536**11 * */ 15681, 63698, 8912, 13287, 42995, 63126, 21637, 36777, 172 32431, 46620, 39425, 49174, 21052, 57516, 50478, 65056, 173 16163, 64930, 40889, 59911, 63262, 9978, 14207, 8971, 174 20805, 404, /* * 65536**36 */ 175 /* 10000**45 = 65536**11 * */ 47888, 38008, 759, 29888, 35867, 23808, 45296, 50805, 176 43483, 47380, 58073, 29407, 25871, 19276, 30504, 57366, 177 28150, 37314, 20803, 51663, 10133, 43861, 55010, 58919, 178 40104, 45478, 61, /* * 65536**37 */ 179 /* 10000**46 = 65536**11 * */ 8448, 44043, 59159, 35955, 61568, 58720, 44336, 21839, 180 6392, 46891, 22733, 18829, 43895, 22571, 38397, 28046, 181 31633, 47847, 24429, 12886, 19227, 44634, 63044, 29753, 182 34206, 31815, 27115, 9, /* * 65536**38 */ 183 /* 10000**47 = 65536**11 * */ 4096, 29369, 3248, 28531, 40302, 6834, 17920, 30813, 184 25732, 895, 58307, 8540, 58281, 10713, 63556, 37314, 185 57543, 62026, 44628, 19951, 54878, 42773, 56026, 6179, 186 32156, 43475, 32422, 28601, 1, /* * 65536**39 */ 187 /* 10000**48 = 65536**12 * */ 23809, 44161, 32287, 43489, 57637, 25618, 47998, 30365, 188 41030, 61880, 15488, 65191, 53068, 59042, 53249, 29613, 189 36076, 54840, 25225, 50116, 50437, 64798, 63636, 41326, 190 54618, 20041, 15843, 14364, /* * 65536**39 */ 191 /* 10000**49 = 65536**12 * */ 63248, 32064, 46402, 63566, 53051, 8570, 63781, 29035, 192 49273, 15348, 27874, 25771, 44955, 14273, 19009, 46477, 193 54374, 256, 10304, 10057, 12591, 33264, 15327, 65230, 194 9281, 9246, 32546, 53041, 2191, /* * 65536**40 */ 195 /* 10000**50 = 65536**12 * */ 57600, 47538, 30012, 33416, 5779, 52543, 14955, 35252, 196 34782, 2206, 17734, 26701, 42508, 64987, 37777, 57124, 197 60435, 12392, 17447, 39348, 16878, 46721, 51907, 22530, 198 20977, 55656, 9634, 32118, 29069, 334, /* * 65536**41 */ 199 /* 10000**51 = 65536**12 * */ 4096, 56181, 37909, 62051, 57882, 28769, 4865, 4138, 200 25827, 45211, 65456, 19041, 17578, 21510, 30412, 33988, 201 51260, 645, 15059, 4518, 30804, 6431, 32009, 60688, 202 58237, 31488, 10572, 55070, 42740, 2099, 51, /* * 65536**42 */ 203 /* 10000**52 = 65536**13 * */ 36033, 38348, 20936, 15516, 61328, 26677, 27526, 58791, 204 46612, 58866, 37907, 15353, 13530, 36242, 14944, 48130, 205 35293, 53906, 27993, 21489, 23884, 13157, 21524, 26364, 206 53942, 15236, 2605, 48147, 25001, 51568, 7, /* * 65536**43 */ 207 /* 10000**53 = 65536**13 * */ 13072, 34362, 43867, 39482, 62015, 47837, 12870, 56280, 208 36938, 22760, 18758, 50472, 36038, 7984, 23450, 5896, 209 25984, 31785, 33969, 1727, 30095, 42892, 21783, 57492, 210 62742, 62566, 34532, 42941, 63042, 46566, 12332, 1, 211 /* * 65536**44 */ 212 /* 10000**54 = 65536**13 * */ 41216, 16746, 42795, 37829, 54392, 32198, 60131, 44331, 213 27691, 64644, 19440, 30126, 5237, 22651, 13410, 46714, 214 56195, 4364, 21762, 39215, 8951, 57008, 60416, 41531, 215 52644, 62917, 20362, 23397, 35768, 36339, 53889, 11881, 216 /* * 65536**44 */ 217 /* 10000**55 = 65536**13 * */ 4096, 21809, 2475, 22738, 42508, 9931, 22113, 33671, 218 27164, 62657, 30087, 59510, 11332, 18383, 16800, 1438, 219 51464, 1598, 41146, 51432, 59343, 49237, 57850, 17586, 220 61185, 32432, 9248, 9587, 53618, 63873, 58552, 1454, 221 1813, /* * 65536**45 */ 222 /* 10000**56 = 65536**14 * */ 52353, 46255, 35993, 16973, 29446, 13051, 54942, 63953, 223 49984, 3784, 37711, 17336, 3249, 34037, 30179, 51547, 224 62604, 25235, 65286, 9367, 7087, 21241, 35739, 8587, 225 57208, 13652, 57779, 31446, 24325, 31122, 65478, 42285, 226 276, /* * 65536**46 */ 227 /* 10000**57 = 65536**14 * */ 28432, 4900, 13346, 62788, 9341, 32317, 33703, 38095, 228 6686, 33355, 16433, 23034, 52325, 42047, 1913, 33965, 229 47993, 45952, 59754, 29017, 27013, 8905, 25433, 23293, 230 17566, 17241, 26707, 27088, 50702, 58783, 14572, 21719, 231 13940, 42, /* * 65536**47 */ 232 /* 10000**58 = 65536**14 * */ 24832, 48946, 29451, 47156, 30780, 13409, 48819, 59910, 233 19092, 38316, 36337, 49003, 14090, 64544, 65439, 42739, 234 15054, 54427, 55299, 51245, 60571, 56233, 51678, 18936, 235 27074, 53000, 13430, 23787, 37637, 45352, 42441, 5919, 236 8242, 28911, 6, /* * 65536**48 */ 237 /* 10000**59 = 65536**14 * */ 4096, 40941, 64220, 32973, 50139, 8040, 14382, 42873, 238 22773, 39457, 44262, 22872, 5077, 43622, 22888, 39729, 239 10329, 61353, 5536, 32454, 34107, 40362, 37220, 34381, 240 13673, 14499, 24823, 41905, 381, 16623, 5784, 17468, 241 42151, 31961, 64411, /* * 65536**48 */ 242 /* 10000**60 = 65536**15 * */ 7233, 18983, 28183, 44631, 60514, 35242, 61218, 64477, 243 46754, 61412, 6113, 48626, 13158, 34944, 14260, 11326, 244 49080, 56977, 6572, 25608, 54516, 27214, 13823, 27150, 245 26454, 47380, 16603, 15306, 30762, 39784, 27442, 50649, 246 62895, 27068, 9828, /* * 65536**49 */ 247 /* 10000**61 = 65536**15 * */ 43792, 38847, 28096, 14140, 52922, 42161, 13601, 36173, 248 16014, 54814, 59818, 49348, 56667, 4055, 64532, 15967, 249 2624, 7505, 61622, 31850, 35459, 42846, 18728, 51997, 250 40846, 44292, 34541, 35973, 61887, 41173, 26838, 31979, 251 8736, 25917, 45666, 1499, /* * 65536**50 */ 252 /* 10000**62 = 65536**15 * */ 8448, 44810, 13095, 43135, 18957, 24987, 29233, 38891, 253 41071, 64875, 41291, 3047, 53274, 57398, 53162, 34150, 254 28036, 11680, 51673, 4442, 45100, 56578, 50185, 10233, 255 47582, 33944, 42038, 8166, 19041, 42291, 16362, 43951, 256 5391, 41989, 9106, 54760, 228, /* * 65536**51 */ 257 /* 10000**63 = 65536**15 * */ 4096, 31657, 15909, 59582, 46469, 49660, 43252, 23836, 258 1822, 15403, 43099, 2060, 63857, 23840, 726, 16, 259 2203, 19126, 45958, 60012, 47461, 14593, 49481, 35961, 260 30201, 36316, 37275, 8558, 29166, 9097, 48597, 28080, 261 46114, 1670, 36903, 48109, 60131, 34, /* * 65536**52 */ 262 /* 10000**64 = 65536**16 * */ 31745, 38958, 34651, 48851, 40818, 55513, 12167, 4629, 263 20678, 27614, 28272, 53066, 55311, 54677, 29038, 9906, 264 26288, 44486, 13860, 7445, 54106, 15426, 21518, 25599, 265 29632, 52309, 61207, 26105, 10482, 21948, 51191, 32988, 266 60892, 62574, 61390, 24540, 21495, 5, /* * 65536**53 */ 267 /* 10000**65 = 65536**16 * */ 59152, 38859, 27112, 9943, 29246, 46308, 43654, 23440, 268 14626, 39987, 1909, 19322, 59793, 11591, 63863, 39534, 269 16615, 5643, 63684, 3218, 61456, 62047, 27665, 9667, 270 35650, 51705, 37277, 29451, 31919, 1535, 11653, 45123, 271 30057, 11563, 33836, 42583, 61200, 53279, /* * 65536**53 */ 272 /* 10000**66 = 65536**16 * */ 57600, 36081, 3497, 16025, 39885, 7086, 11770, 49925, 273 52760, 37095, 25125, 20163, 48020, 51475, 48984, 36592, 274 22272, 6039, 27549, 11541, 29419, 50065, 32011, 8621, 275 51171, 41935, 9121, 62440, 34173, 19446, 7226, 16418, 276 28789, 29082, 64932, 47770, 31329, 57194, 8129, /* * 65536**54 */ 277 /* 10000**67 = 65536**16 * */ 4096, 43109, 44817, 15013, 349, 21670, 63961, 64083, 278 42817, 24290, 56172, 45097, 20804, 37583, 31790, 39986, 279 34255, 34742, 43113, 5307, 657, 24985, 39815, 35044, 280 6227, 58480, 55822, 39919, 34823, 19902, 42295, 13422, 281 58393, 41160, 59285, 18003, 35209, 12108, 34087, 1240, 282 /* * 65536**55 */ 283 /* 10000**68 = 65536**17 * */ 60353, 41409, 59398, 18882, 38037, 47482, 28751, 33090, 284 30117, 14650, 25355, 35617, 49750, 56134, 29714, 64965, 285 18890, 39493, 57954, 17209, 26868, 22612, 25083, 16147, 286 23222, 58811, 18741, 43323, 58017, 49228, 8725, 6288, 287 42830, 17624, 11654, 33355, 40380, 19111, 18897, 189, 288 /* * 65536**56 */ 289 /* 10000**69 = 65536**17 * */ 8976, 42761, 33550, 19847, 1937, 17484, 10813, 13123, 290 37129, 31635, 58987, 51244, 21658, 31751, 8341, 61702, 291 35160, 12946, 11178, 1307, 50562, 24899, 27178, 58659, 292 28415, 59015, 51549, 39899, 51938, 47956, 29095, 32307, 293 23199, 20231, 19681, 39074, 37793, 13185, 32628, 57875, 294 28, /* * 65536**57 */ 295 /* 10000**70 = 65536**17 * */ 41216, 54505, 27740, 32111, 39908, 55783, 63803, 28577, 296 30562, 13393, 50827, 23016, 56875, 56920, 53052, 65368, 297 8774, 31765, 43095, 30041, 9959, 26451, 6007, 46947, 298 60390, 2655, 58365, 14697, 13288, 41013, 43013, 47495, 299 63025, 3907, 8479, 17371, 55386, 62870, 43803, 6562, 300 26687, 4, /* * 65536**58 */ 301 /* 10000**71 = 65536**17 * */ 4096, 58913, 59964, 53368, 36195, 59193, 45551, 42775, 302 29992, 44615, 40363, 5323, 32104, 28518, 14765, 32031, 303 62806, 63882, 55646, 65087, 45399, 8223, 43060, 36548, 304 58459, 17134, 52325, 47193, 40770, 7739, 23490, 17171, 305 63071, 20160, 52548, 40893, 17914, 21603, 62505, 25147, 306 8409, 44072, /* * 65536**58 */ 307 /* 10000**72 = 65536**18 * */ 27521, 60125, 29501, 2815, 14371, 43832, 3478, 33791, 308 51024, 583, 20927, 45484, 37762, 1743, 37821, 33399, 309 50191, 3571, 40475, 32059, 54783, 29734, 57834, 14456, 310 37816, 13190, 13248, 7745, 63741, 20156, 9264, 59692, 311 20887, 15428, 58914, 36351, 26077, 36464, 17905, 11149, 312 57219, 6724, /* * 65536**59 */ 313 /* 10000**73 = 65536**18 * */ 24336, 26935, 41638, 39557, 55517, 17424, 52608, 6914, 314 47396, 5081, 13641, 23353, 8508, 3186, 2010, 24315, 315 40408, 538, 209, 59600, 19467, 11527, 54873, 61944, 316 19485, 47338, 33756, 54005, 8045, 46526, 40707, 19525, 317 15876, 11443, 39250, 56333, 7802, 1675, 11212, 15996, 318 62421, 8794, 1026, /* * 65536**60 */ 319 /* 10000**74 = 65536**18 * */ 24832, 753, 33902, 1057, 20580, 53783, 25186, 7547, 320 4703, 26832, 30359, 27313, 17835, 10802, 46470, 11746, 321 54270, 12213, 58466, 15647, 37174, 60682, 64366, 2100, 322 20924, 16445, 56823, 38510, 45568, 21163, 33003, 24467, 323 34787, 6566, 6642, 54069, 40755, 39510, 53695, 53870, 324 47576, 212, 37726, 156, /* * 65536**61 */ 325 /* 10000**75 = 65536**18 * */ 4096, 62685, 2386, 23877, 17121, 44724, 13358, 41907, 326 41839, 16333, 31342, 46120, 30711, 19393, 51408, 26578, 327 63712, 44712, 15207, 44489, 22195, 27848, 40203, 38301, 328 49408, 23368, 35389, 19134, 14068, 21209, 59469, 29147, 329 8645, 63772, 33033, 19013, 55402, 55210, 19580, 2273, 330 42396, 30107, 34816, 58428, 23, /* * 65536**62 */ 331 /* 10000**76 = 65536**19 * */ 64321, 14460, 22716, 33611, 24948, 24456, 34854, 14570, 332 20672, 29340, 27950, 15341, 13662, 18575, 39364, 48599, 333 43129, 33302, 33952, 51892, 20922, 36425, 23750, 9940, 334 51699, 64701, 45815, 42663, 17650, 19572, 40482, 12463, 335 56039, 38290, 15104, 47093, 33189, 52392, 57531, 7962, 336 4085, 37362, 31872, 42307, 3, /* * 65536**63 */ 337 /* 10000**77 = 65536**19 * */ 39696, 37398, 14430, 44858, 55112, 48990, 23283, 18790, 338 21679, 64018, 58972, 60024, 45316, 23060, 33618, 46566, 339 4999, 38165, 48601, 11132, 37006, 4104, 3094, 51048, 340 43548, 46496, 63232, 63166, 18061, 32197, 7114, 52241, 341 59101, 47238, 50898, 56144, 22881, 30280, 42986, 2538, 342 22287, 65423, 24132, 39983, 36455, /* * 65536**63 */ 343 /* 10000**78 = 65536**19 * */ 8448, 37641, 60970, 53817, 34620, 26809, 53603, 11840, 344 65315, 27659, 36840, 4774, 53255, 51266, 49374, 31849, 345 58673, 34634, 847, 47288, 45442, 20110, 7634, 20568, 346 1069, 54261, 35766, 33680, 2422, 59924, 38352, 23629, 347 14323, 5530, 34632, 854, 32391, 27171, 13996, 24127, 348 47987, 53048, 26430, 64082, 44868, 5562, /* * 65536**64 */ 349 /* 10000**79 = 65536**19 * */ 4096, 38041, 24335, 63207, 47059, 53042, 15146, 50163, 350 20030, 38046, 26364, 35413, 5192, 45534, 65134, 58109, 351 56587, 56728, 21140, 37889, 591, 42486, 59164, 29196, 352 10770, 37619, 38327, 15953, 42355, 44721, 12471, 38572, 353 37445, 55337, 28619, 25604, 31218, 2686, 44786, 34119, 354 19089, 38938, 1406, 13025, 30322, 52318, 848, /* * 65536**65 */ 355 /* 10000**80 = 65536**20 * */ 39681, 20636, 44529, 51164, 44332, 14397, 19767, 29638, 356 26576, 60013, 43014, 20891, 62200, 50179, 57762, 41042, 357 9018, 55056, 29609, 17541, 55738, 53010, 6147, 28807, 358 15003, 21212, 21224, 58802, 64334, 1815, 42543, 48717, 359 55265, 2731, 60751, 35938, 60539, 52921, 16417, 54374, 360 33536, 41237, 30182, 52451, 10738, 33839, 129, /* * 65536**66 */ 361 /* 10000**81 = 65536**20 * */ 55056, 58726, 41564, 7242, 42303, 59708, 15620, 29224, 362 16042, 20903, 36389, 53331, 1011, 55875, 58888, 42381, 363 8726, 58976, 6752, 40182, 64532, 53336, 5320, 40218, 364 22491, 47793, 37668, 34246, 47596, 6344, 36101, 47403, 365 57881, 55456, 57232, 55381, 39451, 16037, 10395, 55849, 366 20584, 22605, 33012, 29997, 40035, 29270, 49979, 19, 367 /* * 65536**67 */ 368 /* 10000**82 = 65536**20 * */ 57600, 304, 19649, 9062, 61761, 53494, 36822, 17359, 369 57867, 38143, 37317, 49120, 25593, 55754, 47565, 63209, 370 38050, 2867, 26919, 19814, 58675, 37878, 58442, 51915, 371 62120, 44919, 51900, 40147, 42793, 8414, 38680, 13620, 372 3281, 3200, 2574, 39533, 57266, 9427, 12351, 59330, 373 65481, 19476, 18617, 16765, 60689, 22332, 16930, 1018, 374 3, /* * 65536**68 */ 375 /* 10000**83 = 65536**20 * */ 4096, 34133, 13118, 52246, 118, 44592, 46914, 56290, 376 55304, 19309, 13836, 13374, 19415, 29153, 63755, 2537, 377 7629, 36574, 34085, 28779, 9215, 56409, 41267, 48261, 378 57713, 15734, 27270, 4383, 51582, 63841, 7811, 22094, 379 44078, 18932, 50376, 17240, 12464, 37970, 41614, 4476, 380 48877, 62535, 50731, 11752, 29198, 48108, 23919, 24503, 381 30155, /* * 65536**68 */ 382 /* 10000**84 = 65536**21 * */ 19137, 47672, 9009, 8324, 13074, 40116, 18454, 55821, 383 29382, 16450, 48671, 34408, 28834, 20240, 17296, 6483, 384 50284, 2844, 26625, 10775, 23054, 63951, 9192, 27348, 385 62406, 7104, 56113, 52348, 31694, 829, 19336, 53771, 386 58757, 53192, 48006, 58694, 51853, 57729, 5261, 3195, 387 12946, 5366, 21693, 18913, 50215, 56476, 60081, 22602, 388 4601, /* * 65536**69 */ 389 /* 10000**85 = 65536**21 * */ 4880, 14056, 50810, 10654, 62486, 16138, 62281, 42703, 390 30629, 9123, 42174, 23426, 52386, 29231, 13584, 17535, 391 48797, 5048, 43202, 12878, 51532, 13229, 48286, 65210, 392 30380, 8498, 11852, 52530, 15891, 37300, 28926, 55606, 393 47964, 38789, 16916, 6909, 18124, 56824, 58936, 34770, 394 26887, 53527, 6658, 61950, 16053, 43950, 50105, 61039, 395 7176, 702, /* * 65536**70 */ 396 /* 10000**86 = 65536**21 * */ 41216, 51560, 1536, 51753, 41401, 39902, 23854, 6927, 397 46788, 8561, 17232, 40771, 34326, 27433, 53868, 43272, 398 57155, 24725, 7458, 8352, 12397, 46215, 58306, 24167, 399 50590, 49979, 32208, 30768, 58751, 37048, 55323, 56989, 400 56036, 55270, 17502, 17637, 34014, 45645, 3422, 40513, 401 46633, 41590, 3591, 54744, 41788, 18033, 33986, 60877, 402 7393, 8743, 107, /* * 65536**71 */ 403 /* 10000**87 = 65536**21 * */ 4096, 34577, 32443, 57978, 26984, 43149, 60584, 2087, 404 19553, 27123, 27162, 13173, 54189, 1541, 43802, 59547, 405 17146, 56929, 3804, 28274, 42698, 57555, 58795, 47664, 406 31303, 20183, 43722, 58930, 49990, 13956, 46277, 62921, 407 35895, 43462, 47313, 15294, 10851, 62486, 17172, 52506, 408 47541, 15659, 2618, 18340, 30817, 46840, 58591, 11281, 409 14681, 6104, 22758, 16, /* * 65536**72 */ 410 /* 10000**88 = 65536**22 * */ 2689, 32076, 53494, 37134, 5093, 31800, 38796, 36430, 411 45015, 42954, 6784, 40362, 17308, 43147, 16587, 26910, 412 46920, 37806, 18276, 17274, 19363, 35326, 5643, 37337, 413 49432, 32423, 6959, 384, 41484, 22433, 5925, 18929, 414 56261, 32247, 51731, 50253, 41431, 25214, 53724, 19867, 415 31750, 33525, 30671, 22526, 18910, 25307, 31484, 11081, 416 28224, 39939, 32400, 2, /* * 65536**73 */ 417 /* 10000**89 = 65536**22 * */ 20240, 27226, 40062, 21186, 14194, 20105, 57268, 56831, 418 54310, 23924, 16794, 50347, 5582, 49153, 4967, 11715, 419 31882, 55511, 51400, 55428, 39291, 23914, 8894, 12269, 420 53185, 30950, 61251, 39973, 62714, 6601, 8879, 22936, 421 51864, 41464, 39272, 7845, 64612, 29329, 45255, 38581, 422 46647, 38204, 6635, 17448, 32077, 38389, 8917, 58964, 423 43674, 17922, 61646, 24943, /* * 65536**73 */ 424 0}; /* end powers of 10000 in base 65536 */ 425 426 unsigned short _start_small_powers_ten[] = { 427 0, 1, 2, 4, 7, 10, 14, 18, 428 23, 28, 34, 41, 49, 56, 64, 73, 429 83, 93, 104, 115, 127, 139, 152, 166, 430 181, 195, 210, 226, 243, 260, 278, 296, 431 315, 334, 354, 375, 397, 418, 440, 463, 432 487, 511, 536, 561, 587, 613, 640, 668, 433 697, 725, 754, 784, 815, 846, 878, 910, 434 943, 976, 1010, 1045, 1080, 1115, 1151, 1188, 435 1226, 1264, 1302, 1341, 1381, 1421, 1462, 1504, 436 1546, 1588, 1631, 1675, 1720, 1765, 1810, 1856, 437 1903, 1950, 1998, 2047, 2096, 2145, 2195, 2246, 438 2298, 2350, 2402, 439 0}; /* end _start_small_powers_ten */ 440 441 unsigned short _leading_zeros_small_powers_ten[] = { 442 0, 0, 0, 0, 1, 1, 1, 1, 443 2, 2, 2, 2, 3, 3, 3, 3, 444 4, 4, 4, 4, 5, 5, 5, 5, 445 6, 6, 6, 6, 7, 7, 7, 7, 446 8, 8, 8, 8, 9, 9, 9, 9, 447 10, 10, 10, 10, 11, 11, 11, 11, 448 12, 12, 12, 12, 13, 13, 13, 13, 449 14, 14, 14, 14, 15, 15, 15, 15, 450 16, 16, 16, 16, 17, 17, 17, 17, 451 18, 18, 18, 18, 19, 19, 19, 19, 452 20, 20, 20, 20, 21, 21, 21, 21, 453 22, 22, 454 0}; /* end _leading_zeros_small_powers_ten */ 455 456 unsigned short _max_small_powers_two = 70; 457 unsigned short _small_powers_two[] = {1, /* begin powers of 65536 in 458 * base 10000 */ 459 /* 65536**1 = */ 5536, 6, /* * 10000**1 */ 460 /* 65536**2 = */ 7296, 9496, 42, /* * 10000**2 */ 461 /* 65536**3 = */ 656, 7671, 4749, 281, /* * 10000**3 */ 462 /* 65536**4 = */ 1616, 955, 737, 6744, 1844, /* * 10000**4 */ 463 /* 65536**5 = */ 6176, 7470, 6291, 9614, 2581, 2089, 1, /* * 10000**6 */ 464 /* 65536**6 = */ 336, 4395, 5935, 4337, 1426, 1625, 9228, 7, 465 /* * 10000**7 */ 466 /* 65536**7 = */ 96, 2922, 4963, 8530, 2762, 5348, 6858, 9229, 467 51, /* * 10000**8 */ 468 /* 65536**8 = */ 1456, 6821, 4317, 4607, 6337, 4634, 938, 6692, 469 2823, 340, /* * 10000**9 */ 470 /* 65536**9 = */ 416, 598, 3615, 2648, 1827, 5357, 3141, 3062, 471 1985, 745, 2230, /* * 10000**10 */ 472 /* 65536**10 = */ 2976, 3254, 6559, 3019, 1628, 8327, 3684, 1820, 473 9029, 7330, 163, 4615, 1, /* * 10000**12 */ 474 /* 65536**11 = */ 5136, 3647, 1951, 6171, 2397, 8943, 9196, 9668, 475 6473, 8053, 411, 9713, 5780, 9, /* * 10000**13 */ 476 /* 65536**12 = */ 2896, 3451, 4640, 5444, 235, 4161, 7666, 2320, 477 7894, 3835, 8076, 3866, 1735, 7710, 62, /* * 10000**14 */ 478 /* 65536**13 = */ 2256, 3715, 9658, 8394, 6640, 6839, 6245, 3762, 479 6393, 2295, 3874, 5105, 301, 3933, 3761, 411, 480 /* * 10000**15 */ 481 /* 65536**14 = */ 9216, 1024, 1036, 2481, 4057, 4225, 7144, 7363, 482 6306, 7019, 1508, 6670, 9794, 5063, 6671, 9946, 483 2695, /* * 10000**16 */ 484 /* 65536**15 = */ 9776, 9261, 2012, 1606, 5812, 6189, 6875, 8389, 485 8274, 8515, 4291, 5007, 3297, 2958, 3843, 4778, 486 4706, 7668, 1, /* * 10000**18 */ 487 /* 65536**16 = */ 9936, 2963, 9131, 4007, 5758, 394, 564, 6564, 488 9846, 3269, 785, 6879, 5008, 7098, 4235, 6195, 489 3731, 892, 5792, 11, /* * 10000**19 */ 490 /* 65536**17 = */ 5696, 8284, 8640, 2594, 2554, 8922, 4889, 2000, 491 474, 1715, 7190, 7290, 9370, 7352, 1480, 3279, 492 5418, 2567, 360, 8855, 75, /* * 10000**20 */ 493 /* 65536**18 = */ 3056, 7553, 5333, 7012, 5949, 8931, 3976, 4046, 494 7174, 7347, 5079, 4561, 100, 2084, 1468, 2248, 495 5538, 6421, 9786, 3640, 3232, 497, /* * 10000**21 */ 496 /* 65536**19 = */ 8016, 3435, 2989, 3387, 9621, 1007, 9670, 4718, 497 1782, 10, 5498, 2986, 3494, 7682, 505, 4550, 498 3101, 2951, 7380, 5177, 6213, 2575, 3259, /* * 10000**22 */ 499 /* 65536**20 = */ 6576, 8693, 9620, 22, 4055, 7806, 9725, 2221, 500 6078, 7041, 6994, 6527, 2356, 452, 6027, 2114, 501 6955, 7061, 5021, 8239, 9100, 5920, 8703, 1359, 502 2, /* * 10000**24 */ 503 /* 65536**21 = */ 4736, 7544, 3294, 4843, 8630, 590, 8760, 9194, 504 2369, 8810, 4931, 9312, 5595, 7716, 8435, 2602, 505 6738, 5277, 2535, 4014, 1598, 2763, 8611, 463, 506 9984, 13, /* * 10000**25 */ 507 /* 65536**22 = */ 8496, 4621, 5027, 2440, 7421, 2800, 9232, 5393, 508 5043, 7691, 5754, 3553, 4950, 2449, 6731, 9956, 509 8625, 7631, 8347, 8120, 2835, 6443, 8604, 9602, 510 4463, 7399, 91, /* * 10000**26 */ 511 /* 65536**23 = */ 3856, 7535, 9761, 787, 8650, 9435, 6706, 6152, 512 3397, 429, 4551, 7122, 6488, 106, 8869, 529, 513 3252, 1747, 9008, 7027, 7780, 7032, 3970, 3063, 514 101, 119, 2269, 601, /* * 10000**27 */ 515 /* 65536**24 = */ 6816, 9030, 6279, 806, 1564, 8849, 6254, 1426, 516 6114, 7210, 7149, 7217, 4245, 9340, 9482, 6667, 517 6544, 2704, 9739, 507, 6138, 143, 4010, 2790, 518 9212, 9447, 1963, 2006, 3940, /* * 10000**28 */ 519 /* 65536**25 = */ 3376, 4749, 9727, 3171, 3590, 8314, 137, 5328, 520 6453, 4629, 4119, 168, 7622, 4064, 3565, 659, 521 1283, 2235, 2829, 579, 3297, 1874, 301, 1720, 522 5919, 8965, 9085, 8086, 4987, 5822, 2, /* * 10000**30 */ 523 /* 65536**26 = */ 9536, 2588, 9797, 8405, 5027, 9833, 2920, 6711, 524 8725, 8437, 3124, 7045, 6495, 8255, 2478, 1590, 525 7009, 1368, 5992, 3885, 5988, 6071, 8619, 3893, 526 8856, 9031, 3316, 3641, 1030, 3280, 9230, 16, 527 /* * 10000**31 */ 528 /* 65536**27 = */ 1296, 9663, 3158, 4287, 4561, 8438, 9564, 1238, 529 5583, 4416, 9762, 1598, 2492, 2250, 2312, 8485, 530 2245, 9183, 681, 6630, 5032, 8301, 4574, 8137, 531 2334, 3657, 6567, 8313, 5943, 4832, 8776, 9067, 532 110, /* * 10000**32 */ 533 /* 65536**28 = */ 4656, 2861, 6016, 3534, 7793, 2661, 1606, 6252, 534 5607, 3565, 1376, 507, 6191, 2332, 3979, 8113, 535 3928, 1806, 199, 8149, 602, 7318, 6068, 6413, 536 4353, 453, 8880, 3807, 4932, 8905, 5606, 2429, 537 8387, 726, /* * 10000**33 */ 538 /* 65536**29 = */ 5616, 9009, 3328, 3652, 5212, 2370, 8260, 1598, 539 1326, 2590, 903, 5772, 6699, 525, 3031, 9646, 540 8579, 3763, 3502, 4169, 6077, 6398, 407, 2140, 541 240, 6340, 2651, 3748, 8507, 404, 3179, 3689, 542 6354, 4102, 4763, /* * 10000**34 */ 543 /* 65536**30 = */ 176, 629, 2853, 9288, 7567, 4479, 2895, 662, 544 1214, 6931, 5982, 9711, 3491, 306, 3061, 120, 545 6562, 8197, 1738, 2537, 9596, 9156, 5085, 9711, 546 2664, 9814, 7485, 6305, 9316, 2297, 1597, 3138, 547 9922, 315, 4855, 1217, 3, /* * 10000**36 */ 548 /* 65536**31 = */ 4336, 3297, 8330, 7065, 1783, 5341, 6078, 3807, 549 5044, 7972, 1775, 9304, 9821, 6900, 7703, 4380, 550 8020, 1596, 5292, 6227, 83, 506, 571, 3427, 551 1549, 7769, 1278, 3540, 4701, 7249, 6051, 2435, 552 8758, 8866, 9350, 9129, 4586, 20, /* * 10000**37 */ 553 /* 65536**32 = */ 4096, 608, 6490, 6433, 6994, 9465, 2811, 5388, 554 8537, 6050, 8648, 8581, 31, 2769, 9034, 8166, 555 7429, 8018, 6976, 7354, 300, 1764, 4372, 5614, 556 7723, 9337, 5923, 5820, 7936, 1274, 5846, 9820, 557 249, 9574, 9709, 9425, 7929, 780, 134, /* * 10000**38 */ 558 /* 65536**33 = */ 5456, 2731, 2627, 5621, 947, 4080, 3730, 6396, 559 6144, 8751, 4982, 1095, 7858, 9392, 370, 6183, 560 466, 6340, 1687, 7467, 8999, 7474, 4952, 7757, 561 1322, 249, 924, 8343, 1841, 4877, 1810, 1833, 562 2824, 3302, 1768, 435, 6718, 49, 6941, 878, 563 /* * 10000**39 */ 564 /* 65536**34 = */ 4416, 4572, 973, 5074, 9431, 3089, 6019, 2703, 565 5103, 5805, 7706, 4575, 9067, 5610, 9876, 1518, 566 297, 1298, 782, 8372, 7400, 5044, 3259, 5210, 567 9431, 7132, 6896, 2903, 6453, 1142, 2123, 9353, 568 5677, 8380, 9289, 9748, 3699, 5291, 5701, 6096, 569 5758, /* * 10000**40 */ 570 /* 65536**35 = */ 6976, 9532, 6493, 6043, 3269, 2514, 1434, 3256, 571 7926, 9924, 8462, 7705, 4899, 6384, 307, 8375, 572 4146, 7675, 7658, 2517, 1267, 2086, 4885, 3921, 573 4162, 4562, 3002, 6206, 2837, 4404, 416, 2122, 574 9169, 8890, 8826, 5809, 1554, 5224, 5413, 4821, 575 6242, 7739, 3, /* * 10000**42 */ 576 /* 65536**36 = */ 9136, 4869, 7721, 6606, 6791, 8931, 5101, 4615, 577 9675, 1209, 675, 343, 1365, 3935, 1393, 6016, 578 7142, 5976, 4989, 4304, 612, 6401, 7031, 8671, 579 6531, 2510, 8972, 6092, 6305, 9140, 1839, 121, 580 3491, 5131, 9003, 6471, 1019, 252, 605, 4534, 581 7310, 4014, 7330, 24, /* * 10000**43 */ 582 /* 65536**37 = */ 6896, 4657, 5371, 1419, 8274, 6525, 7670, 2075, 583 1048, 6433, 4729, 3272, 8888, 3105, 7437, 3707, 584 7539, 9945, 8272, 9643, 6241, 9949, 5565, 8738, 585 2446, 8167, 5445, 4112, 4410, 364, 608, 1914, 586 6970, 8094, 4236, 2461, 3598, 1754, 932, 4189, 587 7874, 9413, 5190, 904, 162, /* * 10000**44 */ 588 /* 65536**38 = */ 6256, 6345, 4380, 786, 4167, 6625, 3887, 7470, 589 5331, 9957, 1903, 4788, 5414, 7530, 1586, 693, 590 203, 4930, 8972, 7865, 3377, 8571, 3045, 45, 591 8325, 8547, 7044, 9721, 711, 4008, 8276, 9888, 592 8463, 4063, 3545, 1862, 4659, 3725, 1049, 6413, 593 7917, 1973, 3534, 8563, 2759, 1062, /* * 10000**45 */ 594 /* 65536**39 = */ 3216, 6919, 9266, 4, 3666, 3309, 1852, 9398, 595 1373, 6894, 265, 8846, 3283, 1564, 9448, 6846, 596 8350, 3810, 1301, 9442, 6621, 1192, 3293, 9081, 597 7496, 750, 1603, 1625, 9808, 2953, 2203, 4208, 598 5975, 8237, 1752, 1267, 4429, 2134, 1679, 9245, 599 540, 4417, 7159, 7929, 9944, 7318, 6961, /* * 10000**46 */ 600 /* 65536**40 = */ 3776, 4660, 1922, 2874, 5008, 2649, 4360, 9467, 601 2519, 4188, 2221, 3197, 2661, 9825, 4379, 1375, 602 472, 6887, 7310, 9440, 5735, 2309, 7864, 3997, 603 7371, 1131, 9128, 6505, 7738, 2086, 5167, 9927, 604 5178, 9192, 3057, 5599, 7248, 2850, 8932, 1324, 605 29, 6057, 1171, 1864, 1952, 7622, 4061, 5624, 606 4, /* * 10000**48 */ 607 /* 65536**41 = */ 3936, 2506, 734, 3063, 3124, 7686, 4323, 7887, 608 7229, 1282, 2904, 3150, 2249, 8641, 6534, 704, 609 2006, 9526, 3294, 7751, 830, 215, 240, 8931, 610 2055, 9525, 24, 1502, 205, 8812, 8187, 9735, 611 468, 853, 3796, 6104, 1623, 5104, 6234, 8202, 612 9226, 1742, 2351, 6782, 8488, 8185, 1648, 1083, 613 9004, 29, /* * 10000**49 */ 614 /* 65536**42 = */ 9696, 9010, 9849, 1579, 4538, 171, 2501, 768, 615 1435, 4533, 4950, 7432, 1109, 1317, 8855, 170, 616 9834, 9082, 8014, 1129, 5679, 5684, 49, 3589, 617 5010, 3873, 5288, 5235, 4723, 4576, 982, 6620, 618 4652, 5281, 246, 6622, 4933, 6384, 4874, 7130, 619 8892, 4180, 6558, 560, 4016, 7791, 6974, 6293, 620 3242, 9553, 195, /* * 10000**50 */ 621 /* 65536**43 = */ 7056, 2903, 3118, 5896, 2722, 6397, 6659, 8038, 622 9194, 4092, 2908, 5995, 8133, 8184, 9911, 9152, 623 2143, 2400, 5030, 2670, 6348, 3842, 8518, 9028, 624 8880, 3763, 9753, 5617, 839, 3692, 6344, 4758, 625 6857, 6107, 6468, 1007, 2486, 4157, 4305, 3626, 626 2842, 8759, 2487, 3141, 6250, 7295, 9125, 3757, 627 8958, 6658, 2128, 1284, /* * 10000**51 */ 628 /* 65536**44 = */ 2016, 7250, 277, 692, 7634, 1634, 6149, 2012, 629 666, 3571, 5511, 7380, 3578, 9928, 935, 430, 630 3633, 450, 1810, 4086, 29, 916, 831, 4834, 631 8851, 169, 7275, 9631, 1521, 4414, 4580, 1866, 632 1538, 3293, 6875, 7144, 9099, 9444, 9724, 1751, 633 7078, 8451, 5436, 4880, 586, 6082, 3812, 8558, 634 6115, 7397, 4247, 2174, 8416, /* * 10000**52 */ 635 /* 65536**45 = */ 576, 9212, 986, 2732, 6359, 5854, 1577, 8731, 636 165, 3422, 2299, 1799, 6177, 4861, 1226, 6614, 637 5106, 5009, 3111, 1958, 7323, 1168, 6419, 6470, 638 816, 3593, 5513, 4893, 3378, 5878, 3808, 194, 639 6600, 128, 1582, 4242, 8887, 1619, 3962, 7269, 640 5289, 1123, 9085, 1310, 6081, 3795, 3091, 2074, 641 8728, 9872, 9872, 3101, 5226, 5156, 5, /* * 10000**54 */ 642 /* 65536**46 = */ 8736, 1406, 8868, 819, 1329, 9420, 8640, 5154, 643 660, 5279, 9690, 4332, 7663, 978, 8997, 3141, 644 162, 3291, 5326, 9879, 2961, 4041, 3243, 9988, 645 9781, 6199, 3515, 3780, 2678, 2749, 9612, 8943, 646 8873, 1861, 8795, 4079, 6233, 1028, 4248, 7150, 647 7544, 1594, 1923, 1700, 3007, 8973, 6650, 1923, 648 1802, 8593, 6094, 1839, 1465, 7867, 1473, 36, 649 /* * 10000**55 */ 650 /* 65536**47 = */ 2496, 868, 2468, 2102, 2717, 7830, 2775, 9173, 651 7542, 8872, 8436, 5459, 764, 4431, 3806, 7539, 652 7422, 39, 6304, 5050, 6842, 387, 9733, 4823, 653 3075, 1771, 9672, 9119, 182, 6017, 49, 1443, 654 9543, 651, 1322, 8984, 2625, 1859, 3669, 240, 655 445, 3829, 6179, 3803, 7894, 4235, 3207, 9315, 656 8478, 2658, 2700, 647, 2296, 1314, 6086, 8954, 657 236, /* * 10000**56 */ 658 /* 65536**48 = */ 7856, 1605, 8538, 2846, 5089, 4687, 3716, 9919, 659 2629, 4825, 9844, 6315, 5285, 5026, 9055, 849, 660 7602, 4549, 9204, 8113, 411, 7275, 4428, 3914, 661 4814, 4411, 5800, 6171, 7320, 1310, 697, 8773, 662 9504, 6477, 2864, 4088, 878, 8633, 3768, 2686, 663 5095, 260, 2038, 3905, 6111, 6696, 1711, 8860, 664 5256, 255, 4625, 9488, 4897, 9351, 708, 9230, 665 5180, 1552, /* * 10000**57 */ 666 /* 65536**49 = */ 816, 6765, 6891, 1411, 1361, 585, 2496, 5940, 667 9151, 8435, 8006, 4356, 9152, 8575, 1421, 9410, 668 241, 3085, 3161, 3890, 8471, 7098, 1085, 6928, 669 5957, 847, 7711, 669, 3966, 136, 7182, 1896, 670 1639, 8963, 7557, 9941, 7400, 8044, 6225, 4395, 671 3525, 2752, 4075, 1436, 6089, 9107, 5982, 177, 672 5282, 6131, 5674, 5878, 1975, 9235, 773, 1926, 673 6970, 5825, 174, 1, /* * 10000**59 */ 674 /* 65536**50 = */ 7376, 6387, 2911, 6461, 3747, 7480, 1690, 198, 675 8866, 6135, 6501, 7289, 4024, 1181, 2859, 3078, 676 5846, 145, 9514, 5757, 951, 46, 3083, 523, 677 3356, 8036, 3650, 4119, 165, 8888, 445, 3324, 678 5934, 9910, 4292, 2907, 1554, 87, 4322, 1521, 679 3207, 8176, 7237, 6403, 8117, 6257, 6039, 9081, 680 2315, 5832, 1447, 7797, 2125, 7907, 9851, 7407, 681 8542, 2879, 1443, 6680, 6, /* * 10000**60 */ 682 /* 65536**51 = */ 3536, 6771, 7158, 7177, 5736, 3840, 4863, 7208, 683 3474, 1464, 9748, 4512, 4637, 4392, 5166, 8545, 684 3629, 1034, 458, 3103, 2471, 892, 7790, 5532, 685 2245, 9290, 9066, 6709, 436, 5052, 1768, 4586, 686 2408, 651, 5462, 1286, 1998, 1818, 7163, 8580, 687 3922, 3354, 7616, 4441, 7679, 1951, 2915, 1997, 688 5357, 1129, 8814, 3678, 5099, 7083, 6956, 9716, 689 7060, 4129, 7321, 9938, 6994, 43, /* * 10000**61 */ 690 /* 65536**52 = */ 5296, 7429, 1064, 8787, 1535, 5836, 6737, 5360, 691 9305, 7475, 4524, 2317, 8, 4504, 7762, 8978, 692 6147, 8012, 2266, 1210, 9792, 4307, 1287, 6205, 693 4579, 4156, 260, 445, 7670, 733, 757, 9686, 694 743, 9720, 1899, 5092, 9359, 7542, 6283, 5824, 695 8426, 3452, 4159, 5290, 53, 1064, 231, 4497, 696 9441, 5252, 1706, 9172, 2173, 4907, 4838, 3367, 697 7839, 4418, 6120, 4749, 3918, 3890, 286, /* * 10000**62 */ 698 /* 65536**53 = */ 8656, 1651, 8994, 1809, 5347, 8161, 4279, 7115, 699 7611, 2584, 3858, 6565, 9475, 4197, 9949, 3079, 700 8635, 4722, 7087, 3415, 6443, 7725, 3064, 9317, 701 9, 7629, 6599, 5226, 4036, 8154, 5560, 6657, 702 6726, 4795, 6565, 1763, 4796, 3850, 2121, 2845, 703 4508, 5496, 6852, 2698, 8079, 654, 5789, 6906, 704 4847, 6947, 8841, 7375, 9838, 9398, 5327, 1421, 705 8773, 9423, 9278, 574, 1175, 720, 8792, 1876, 706 /* * 10000**63 */ 707 /* 65536**54 = */ 9616, 6663, 1609, 3568, 2853, 4339, 2031, 6688, 708 1127, 4908, 4827, 9125, 6626, 6691, 5175, 548, 709 3545, 7584, 4583, 1888, 833, 7827, 2934, 8997, 710 885, 4209, 2061, 4388, 7549, 6997, 3600, 9595, 711 8766, 9203, 5268, 2995, 2214, 5032, 7090, 3822, 712 4934, 5401, 8693, 1036, 3030, 3492, 2195, 9555, 713 8254, 361, 9307, 5944, 1506, 1807, 1869, 1573, 714 6644, 3223, 4768, 8474, 8567, 3620, 7231, 3155, 715 2300, 1, /* * 10000**65 */ 716 /* 65536**55 = */ 4176, 9387, 1096, 2997, 7592, 9403, 2053, 8081, 717 2903, 8078, 4437, 7637, 1340, 4806, 2654, 7647, 718 8714, 8256, 1192, 2008, 3864, 5732, 3919, 6625, 719 8324, 6829, 7280, 5477, 22, 4868, 5460, 1517, 720 1460, 5263, 3966, 4850, 6335, 1663, 3219, 5060, 721 9676, 2273, 9847, 2269, 875, 1570, 4407, 867, 722 6765, 2595, 5923, 6978, 6176, 3425, 8627, 377, 723 1494, 6071, 6774, 3313, 2450, 6470, 4545, 3471, 724 3481, 611, 8, /* * 10000**66 */ 725 /* 65536**56 = */ 8336, 3799, 8977, 8580, 8953, 4764, 7036, 9876, 726 3968, 8838, 6173, 7515, 8292, 4802, 4041, 1188, 727 821, 2329, 3024, 4105, 4264, 7676, 3151, 1687, 728 5084, 9900, 6839, 8386, 7690, 9395, 8462, 3897, 729 2505, 5537, 268, 5595, 2347, 7888, 1286, 3257, 730 9499, 6743, 7894, 5718, 8876, 7255, 7441, 8594, 731 6724, 255, 6739, 9026, 6070, 1279, 1522, 3612, 732 3260, 8847, 651, 5166, 4916, 3978, 3523, 5246, 733 3566, 5311, 8294, 52, /* * 10000**67 */ 734 /* 65536**57 = */ 8096, 5894, 1574, 7714, 43, 2184, 2523, 9650, 735 1575, 3179, 1651, 3501, 3766, 8219, 2451, 3254, 736 2844, 8725, 6127, 5099, 2408, 2283, 4244, 9887, 737 6081, 9719, 5587, 9722, 6802, 1122, 7208, 9254, 738 3224, 9251, 9936, 5679, 9659, 3352, 992, 9185, 739 7809, 1502, 5381, 6586, 5014, 1853, 928, 5154, 740 390, 5752, 8779, 2100, 2677, 330, 4178, 6007, 741 1032, 8359, 1917, 3248, 8832, 4428, 9401, 4946, 742 5758, 5069, 392, 2231, 346, /* * 10000**68 */ 743 /* 65536**58 = */ 9456, 2241, 2296, 5023, 8603, 910, 1641, 8936, 744 2443, 9272, 770, 2358, 1521, 5067, 2602, 212, 745 5711, 240, 6254, 8223, 4108, 4472, 9747, 2246, 746 9214, 4242, 3330, 7613, 9589, 5975, 845, 7383, 747 8715, 4670, 6325, 4066, 9448, 9976, 3685, 4663, 748 819, 6255, 9064, 5361, 669, 1072, 9555, 8626, 749 2817, 5631, 8240, 3137, 3640, 4425, 1572, 2133, 750 2522, 2191, 7294, 3496, 5239, 1291, 2961, 2669, 751 8708, 9722, 3335, 3388, 77, 2269, /* * 10000**69 */ 752 /* 65536**59 = */ 8416, 8146, 5348, 2376, 9128, 4143, 545, 451, 753 3012, 5808, 3486, 8940, 5709, 881, 7880, 687, 754 7487, 6067, 3720, 3514, 5782, 3919, 8702, 7736, 755 3429, 4098, 2686, 7394, 4598, 447, 7084, 7829, 756 4625, 239, 5811, 830, 779, 9057, 5544, 8524, 757 4545, 3050, 9297, 7901, 8723, 8979, 3505, 6156, 758 1449, 1683, 3545, 437, 1604, 657, 1594, 8593, 759 5771, 5905, 3944, 1659, 6020, 1312, 560, 4990, 760 4981, 8062, 6279, 7830, 8477, 1690, 4870, 1, 761 /* * 10000**71 */ 762 /* 65536**60 = */ 976, 1411, 9919, 8589, 8182, 5470, 4277, 310, 763 7388, 2827, 6561, 4689, 3615, 4636, 9457, 4874, 764 2539, 5979, 3685, 7887, 2183, 3479, 9959, 3527, 765 3648, 9005, 6554, 789, 2987, 4730, 9956, 7769, 766 5312, 3419, 1265, 2963, 7987, 4657, 940, 5203, 767 6986, 4591, 8183, 866, 2314, 4916, 2530, 2592, 768 2010, 6588, 6150, 2465, 2610, 7664, 8690, 1294, 769 4572, 7906, 2686, 75, 7595, 2685, 8762, 8310, 770 7518, 3878, 3382, 8035, 9990, 1399, 1401, 7453, 771 9, /* * 10000**72 */ 772 /* 65536**61 = */ 3136, 7692, 831, 3710, 1847, 5547, 3325, 4193, 773 2002, 8690, 227, 1304, 3374, 8590, 4336, 4444, 774 7852, 6386, 9345, 6585, 6778, 4055, 5825, 741, 775 8449, 5589, 1961, 862, 1207, 4856, 7416, 4434, 776 8153, 2401, 5450, 1460, 5451, 3497, 4365, 9971, 777 8594, 1562, 1180, 7807, 5984, 141, 8299, 5895, 778 4348, 4342, 9576, 6548, 5118, 5010, 8068, 539, 779 9078, 7579, 1511, 2808, 6413, 3934, 4033, 1584, 780 4114, 7883, 8171, 3926, 7300, 339, 5111, 8990, 781 8668, 63, /* * 10000**73 */ 782 /* 65536**62 = */ 896, 3464, 828, 4011, 9306, 298, 3554, 4242, 783 553, 963, 3624, 437, 7010, 6352, 393, 406, 784 7799, 4357, 5776, 5807, 6169, 2904, 3779, 353, 785 8524, 6075, 2729, 4887, 7602, 726, 6801, 5228, 786 4071, 5370, 6940, 8278, 6307, 5116, 7561, 8064, 787 1732, 3560, 2722, 7286, 8588, 9797, 4191, 9108, 788 9166, 5810, 1194, 2488, 6167, 8905, 7284, 6781, 789 9345, 6837, 4571, 4995, 771, 654, 2474, 5457, 790 5487, 7250, 6320, 7890, 8534, 4547, 6722, 2135, 791 4968, 5580, 418, /* * 10000**74 */ 792 /* 65536**63 = */ 256, 2576, 6510, 324, 4303, 718, 6903, 7003, 793 9210, 4794, 8775, 2982, 226, 613, 7281, 195, 794 7925, 1463, 4495, 5408, 9644, 6976, 9579, 8975, 795 1179, 7063, 7562, 2320, 6701, 8959, 5098, 6779, 796 1322, 5003, 5035, 2493, 9807, 3514, 1228, 1859, 797 1205, 9516, 2323, 3137, 919, 2479, 5587, 9360, 798 2668, 4236, 8066, 1396, 6818, 8497, 2587, 7358, 799 8364, 879, 9869, 2280, 994, 5600, 350, 6166, 800 1796, 1963, 5037, 463, 5936, 8125, 2796, 3416, 801 6844, 3439, 620, 2743, /* * 10000**75 */ 802 /* 65536**64 = */ 7216, 2413, 6242, 6329, 3535, 3048, 9716, 3847, 803 2459, 9947, 9823, 5862, 684, 5051, 1633, 7237, 804 4082, 1105, 3913, 8147, 4628, 2342, 5068, 8381, 805 5768, 8500, 9520, 3082, 1945, 941, 1246, 1960, 806 3022, 5276, 6548, 4248, 7893, 7776, 1243, 9474, 807 3063, 8474, 2492, 1662, 8144, 9768, 5878, 3576, 808 1393, 7987, 1138, 1120, 3602, 4075, 7322, 847, 809 1327, 963, 550, 6758, 7732, 8115, 4300, 7273, 810 3065, 8942, 7697, 6179, 4733, 8902, 1907, 9305, 811 772, 3159, 4862, 9313, 7976, 1, /* * 10000**77 */ 812 /* 65536**65 = */ 7776, 5658, 1530, 8253, 1241, 6899, 7753, 668, 813 8242, 2709, 5318, 6414, 5047, 6822, 3390, 4737, 814 5381, 4036, 9612, 7436, 4002, 5647, 1799, 431, 815 6577, 3806, 8429, 4347, 7724, 2124, 4024, 8726, 816 2637, 7742, 4306, 9844, 3491, 9666, 2213, 6215, 817 8857, 2143, 1249, 7169, 6077, 9021, 4628, 5264, 818 5087, 5163, 2312, 7783, 8012, 2806, 1300, 6980, 819 1827, 9865, 1111, 5893, 8641, 5316, 7987, 1513, 820 5507, 3003, 9196, 7392, 2387, 2494, 5495, 4983, 821 4774, 3289, 6735, 8633, 6172, 7813, 11, /* * 10000**78 */ 822 /* 65536**66 = */ 7936, 3648, 7165, 8638, 4263, 1002, 5822, 8862, 823 2094, 1039, 8207, 2757, 2230, 9672, 1751, 6253, 824 262, 8564, 8485, 8691, 3810, 8024, 6274, 7809, 825 3097, 3119, 7891, 234, 8558, 9086, 788, 3509, 826 5621, 6999, 8755, 4608, 692, 3861, 4517, 749, 827 3084, 1697, 8514, 5770, 9255, 86, 9732, 1839, 828 6133, 5709, 3071, 1843, 5440, 6528, 5194, 9801, 829 16, 4618, 5148, 935, 5197, 6009, 876, 8315, 830 6672, 699, 8740, 2380, 2882, 2432, 6666, 1901, 831 1524, 9194, 6517, 6428, 4773, 3222, 2103, 77, 832 /* * 10000**79 */ 833 /* 65536**67 = */ 3696, 7337, 9352, 6926, 6582, 5015, 7161, 8187, 834 465, 5633, 762, 6538, 3353, 8808, 6923, 8089, 835 1412, 2025, 9085, 8988, 9122, 5838, 5452, 1746, 836 6173, 7085, 5018, 7140, 8626, 6181, 1919, 994, 837 853, 3304, 3552, 7269, 1116, 9034, 1415, 6069, 838 7935, 4803, 4627, 8518, 3499, 6753, 6921, 4483, 839 4346, 5218, 8474, 2977, 7920, 4660, 6769, 2379, 840 2811, 5359, 9592, 9900, 6722, 9883, 8919, 7584, 841 685, 3395, 9225, 2958, 355, 2441, 8916, 7623, 842 9326, 7972, 8366, 8123, 5458, 8276, 3326, 56, 843 506, /* * 10000**80 */ 844 /* 65536**68 = */ 1056, 1854, 758, 3630, 3348, 6180, 6166, 165, 845 7899, 7340, 5348, 9365, 5055, 3066, 3454, 6080, 846 9848, 9658, 7831, 7108, 8301, 8955, 537, 1590, 847 5174, 3016, 6084, 9930, 331, 4552, 4097, 5364, 848 8723, 6534, 5525, 4464, 5816, 9542, 2645, 7263, 849 7934, 1414, 6554, 5974, 6290, 7544, 8914, 3249, 850 8840, 5332, 6263, 6210, 4635, 9666, 3728, 4508, 851 7291, 5847, 6434, 9265, 7878, 6347, 357, 3482, 852 1868, 9214, 1849, 5947, 4671, 5704, 4973, 9361, 853 8699, 4115, 6427, 3760, 8728, 1710, 6977, 1818, 854 1585, 3316, /* * 10000**81 */ 855 /* 65536**69 = */ 6016, 664, 8439, 648, 8318, 4423, 5479, 3853, 856 9949, 6006, 4636, 9693, 5857, 6510, 1440, 1518, 857 8376, 1231, 5717, 1215, 924, 9286, 1524, 5765, 858 3684, 485, 793, 2354, 7497, 2047, 824, 1957, 859 5684, 9394, 9226, 8916, 6634, 2630, 5258, 5308, 860 224, 9905, 2215, 5017, 595, 4810, 7348, 4887, 861 9538, 5887, 6917, 9608, 61, 1356, 1558, 726, 862 2522, 6777, 6947, 3209, 3331, 8627, 7952, 8695, 863 4067, 948, 6450, 4715, 7631, 7959, 7912, 5090, 864 9015, 7655, 6845, 7482, 2853, 3762, 5884, 173, 865 6479, 7764, 1732, 2, /* * 10000**83 */ 866 0}; /* end powers of 65536 in base 10000 */ 867 868 unsigned short _start_small_powers_two[] = { 869 0, 1, 3, 6, 10, 15, 22, 30, 870 39, 49, 60, 73, 87, 102, 118, 135, 871 154, 174, 195, 217, 240, 265, 291, 318, 872 346, 375, 406, 438, 471, 505, 540, 577, 873 615, 654, 694, 735, 778, 822, 867, 913, 874 960, 1009, 1059, 1110, 1162, 1215, 1270, 1326, 875 1383, 1441, 1501, 1562, 1624, 1687, 1751, 1817, 876 1884, 1952, 2021, 2091, 2163, 2236, 2310, 2385, 877 2461, 2539, 2618, 2698, 2779, 2861, 2945, 878 0}; /* end _start_small_powers_two */ 879