```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 ``` ```# Square Form Factorization # Jason E Gower and Samuel S Wagstaff Jr # AMS Mathematics of Computation # Volume 77, Number 261, January 2008, Pages 551-588 # S 0025-5718(07)02010-8 # http://homes.cerias.purdue.edu/~ssw/squfof.pdf # Algorithm 3.3 SQUFOF (continued fraction method) verbose = True def squfof(n, m=1): # with optional multiplier # useful multipliers are 3, 5, 7, 11, 15, 21, # 33, 35, 55, 77, 105, 165, 231, 385, 1155 def gcd(a, b): # euclid's algorithm if b == 0: return a return gcd(b, a % b) def isqrt(n): # newton's method x = n; y = (x + 1) // 2 while y < x: x = y; y = (x + n // x) // 2 return x def a(i): return 1 if i % 2 == 0 else -1 if n % 2 == 0: return 2 # 1. Initialise s = isqrt(n) if s * s == n: return s d = 2 * m * n if (m * n) % 4 == 1 else m * n s = isqrt(d) qHat = 1 p = s q = d - p * p ell = 2 * isqrt(2 * isqrt(d)) b = 2 * ell i = 0 queue = [] if verbose: print n, d, s, ell, b if verbose: print "-------------------------" if verbose: print 0, -1*q, p, 1, queue # 2. Cycle forward to find a proper square form: while True: if verbose: print i+1, a(i)*qHat, p, -1*a(i)*q, queue # 2a littleQ = (s + p) // q pPrime = littleQ * q - p # 2b g = q / gcd(q, 2 * m) if g <= ell: queue.append(g) queue.append(b % g) # 2c t = qHat + littleQ * (p - pPrime) qHat = q q = t p = pPrime # 2d if i % 2 == 0: r = isqrt(q) if r * r == q: z = 0 while z < len(queue): if r == queue[z] and \ (p - queue[z+1]) % r == 0: break z = z + 2 if z < len(queue): if r > 1: queue = queue[z:] elif r == 1: return 0 # square form doesn't exist else: break # go to step 3 # 2e i = i + 1 if i > b: return 0 # timeout # 3. Compute an inverse square root of the square form: if verbose: print i+2, -1*a(i)*qHat, p, a(i)*q, queue if verbose: print "-------------------------" qHat = r p = p + r * ((s - p) // r) q = (d - p * p) / qHat if verbose: print 0, -1*a(i)*qHat, p, a(i)*q # 4. Cycle in the reverse direction to find a factor of N: for i in range(1, b): # 4a littleQ = (s + p) // q pPrime = littleQ * q - p # 4b if p == pPrime: break # 4c t = qHat + littleQ * (p - pPrime) qHat = q q = t p = pPrime if verbose: print i, -1*a(i)*qHat, p, a(i)*q # 5. Print the factor of N: if verbose: print i, -1*a(i)*q, p, a(i)*qHat q = q / gcd(q, 2 * m) return q print squfof(42854447) ```
 ```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 455 456 457 458 459 460 461 462 463 464 ``` ```42854447 42854447 6546 228 456 ------------------------- 0 -4331 6546 1 [] 1 1 6546 -4331 [] 2 -4331 6447 298 [] 3 298 6367 -7771 [149, 9] 4 -7771 1404 5261 [149, 9] 5 5261 3857 -5318 [149, 9] 6 -5318 1461 7657 [149, 9] 7 7657 6196 -583 [149, 9] 8 -583 6047 10786 [149, 9] 9 10786 4739 -1891 [149, 9] 10 -1891 4716 10901 [149, 9] 11 10901 6185 -422 [149, 9] 12 -422 6475 2201 [149, 9, 211, 34] 13 2201 4530 -10147 [149, 9, 211, 34] 14 -10147 5617 1114 [149, 9, 211, 34] 15 1114 5523 -11087 [149, 9, 211, 34] 16 -11087 5564 1073 [149, 9, 211, 34] 17 1073 6239 -3662 [149, 9, 211, 34] 18 -3662 4747 5549 [149, 9, 211, 34] 19 5549 6351 -454 [149, 9, 211, 34] 20 -454 6361 5269 [149, 9, 211, 34, 227, 2] 21 5269 4177 -4822 [149, 9, 211, 34, 227, 2] 22 -4822 5467 2689 [149, 9, 211, 34, 227, 2] 23 2689 5289 -5534 [149, 9, 211, 34, 227, 2] 24 -5534 5779 1709 [149, 9, 211, 34, 227, 2] 25 1709 6184 -2699 [149, 9, 211, 34, 227, 2] 26 -2699 4612 7997 [149, 9, 211, 34, 227, 2] 27 7997 3385 -3926 [149, 9, 211, 34, 227, 2] 28 -3926 4467 5833 [149, 9, 211, 34, 227, 2] 29 5833 1366 -7027 [149, 9, 211, 34, 227, 2] 30 -7027 5661 1538 [149, 9, 211, 34, 227, 2] 31 1538 5105 -10919 [149, 9, 211, 34, 227, 2] 32 -10919 5814 829 [149, 9, 211, 34, 227, 2] 33 829 5792 -11227 [149, 9, 211, 34, 227, 2] 34 -11227 5435 1186 [149, 9, 211, 34, 227, 2] 35 1186 6425 -1327 [149, 9, 211, 34, 227, 2] 36 -1327 5518 9349 [149, 9, 211, 34, 227, 2] 37 9349 3831 -3014 [149, 9, 211, 34, 227, 2] 38 -3014 5211 5209 [149, 9, 211, 34, 227, 2] 39 5209 5207 -3022 [149, 9, 211, 34, 227, 2] 40 -3022 3859 9253 [149, 9, 211, 34, 227, 2] 41 9253 5394 -1487 [149, 9, 211, 34, 227, 2] 42 -1487 6502 389 [149, 9, 211, 34, 227, 2] 43 389 6335 -6998 [149, 9, 211, 34, 227, 2] 44 -6998 663 6061 [149, 9, 211, 34, 227, 2] 45 6061 5398 -2263 [149, 9, 211, 34, 227, 2] 46 -2263 5917 3466 [149, 9, 211, 34, 227, 2] 47 3466 4481 -6571 [149, 9, 211, 34, 227, 2] 48 -6571 2090 5857 [149, 9, 211, 34, 227, 2] 49 5857 3767 -4894 [149, 9, 211, 34, 227, 2] 50 -4894 6021 1349 [149, 9, 211, 34, 227, 2] 51 1349 6120 -4003 [149, 9, 211, 34, 227, 2] 52 -4003 5889 2042 [149, 9, 211, 34, 227, 2] 53 2042 6363 -1159 [149, 9, 211, 34, 227, 2] 54 -1159 6386 1789 [149, 9, 211, 34, 227, 2] 55 1789 6137 -2902 [149, 9, 211, 34, 227, 2] 56 -2902 5471 4453 [149, 9, 211, 34, 227, 2] 57 4453 3435 -6974 [149, 9, 211, 34, 227, 2] 58 -6974 3539 4349 [149, 9, 211, 34, 227, 2] 59 4349 5159 -3734 [149, 9, 211, 34, 227, 2] 60 -3734 6043 1697 [149, 9, 211, 34, 227, 2] 61 1697 5836 -5183 [149, 9, 211, 34, 227, 2] 62 -5183 4530 4309 [149, 9, 211, 34, 227, 2] 63 4309 4088 -6067 [149, 9, 211, 34, 227, 2] 64 -6067 1979 6418 [149, 9, 211, 34, 227, 2] 65 6418 4439 -3607 [149, 9, 211, 34, 227, 2] 66 -3607 6382 589 [149, 9, 211, 34, 227, 2] 67 589 5987 -11902 [149, 9, 211, 34, 227, 2] 68 -11902 5915 661 [149, 9, 211, 34, 227, 2] 69 661 5983 -10678 [149, 9, 211, 34, 227, 2] 70 -10678 4695 1949 [149, 9, 211, 34, 227, 2] 71 1949 5050 -8903 [149, 9, 211, 34, 227, 2] 72 -8903 3853 3146 [149, 9, 211, 34, 227, 2] 73 3146 5585 -3707 [149, 9, 211, 34, 227, 2] 74 -3707 5536 3293 [149, 9, 211, 34, 227, 2] 75 3293 4343 -7286 [149, 9, 211, 34, 227, 2] 76 -7286 2943 4693 [149, 9, 211, 34, 227, 2] 77 4693 6443 -286 [149, 9, 211, 34, 227, 2] 78 -286 6427 5413 [149, 9, 211, 34, 227, 2, 143, 27] 79 5413 4399 -4342 [149, 9, 211, 34, 227, 2, 143, 27] 80 -4342 4285 5641 [149, 9, 211, 34, 227, 2, 143, 27] 81 5641 1356 -7271 [149, 9, 211, 34, 227, 2, 143, 27] 82 -7271 5915 1082 [149, 9, 211, 34, 227, 2, 143, 27] 83 1082 5987 -6479 [149, 9, 211, 34, 227, 2, 143, 27] 84 -6479 492 6577 [149, 9, 211, 34, 227, 2, 143, 27] 85 6577 6085 -886 [149, 9, 211, 34, 227, 2, 143, 27] 86 -886 6319 3301 [149, 9, 211, 34, 227, 2, 143, 27] 87 3301 3584 -9091 [149, 9, 211, 34, 227, 2, 143, 27] 88 -9091 5507 1378 [149, 9, 211, 34, 227, 2, 143, 27] 89 1378 5517 -9011 [149, 9, 211, 34, 227, 2, 143, 27] 90 -9011 3494 3401 [149, 9, 211, 34, 227, 2, 143, 27] 91 3401 3308 -9383 [149, 9, 211, 34, 227, 2, 143, 27] 92 -9383 6075 634 [149, 9, 211, 34, 227, 2, 143, 27] 93 634 5971 -11359 [149, 9, 211, 34, 227, 2, 143, 27] 94 -11359 5388 1217 [149, 9, 211, 34, 227, 2, 143, 27] 95 1217 5565 -9766 [149, 9, 211, 34, 227, 2, 143, 27] 96 -9766 4201 2581 [149, 9, 211, 34, 227, 2, 143, 27] 97 2581 6123 -2078 [149, 9, 211, 34, 227, 2, 143, 27] 98 -2078 6345 1249 [149, 9, 211, 34, 227, 2, 143, 27] 99 1249 6145 -4078 [149, 9, 211, 34, 227, 2, 143, 27] 100 -4078 6089 1417 [149, 9, 211, 34, 227, 2, 143, 27] 101 1417 5247 -10814 [149, 9, 211, 34, 227, 2, 143, 27] 102 -10814 5567 1097 [149, 9, 211, 34, 227, 2, 143, 27] 103 1097 6500 -551 [149, 9, 211, 34, 227, 2, 143, 27] 104 -551 6173 8618 [149, 9, 211, 34, 227, 2, 143, 27] 105 8618 2445 -4279 [149, 9, 211, 34, 227, 2, 143, 27] 106 -4279 6113 1282 [149, 9, 211, 34, 227, 2, 143, 27] 107 1282 5425 -10471 [149, 9, 211, 34, 227, 2, 143, 27] 108 -10471 5046 1661 [149, 9, 211, 34, 227, 2, 143, 27] 109 1661 4920 -11227 [149, 9, 211, 34, 227, 2, 143, 27] 110 -11227 6307 274 [149, 9, 211, 34, 227, 2, 143, 27] 111 274 6297 -11687 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 112 -11687 5390 1181 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 113 1181 6420 -1387 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 114 -1387 6063 4394 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 115 4394 2725 -8063 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 116 -8063 5338 1781 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 117 1781 5348 -8003 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 118 -8003 2655 4474 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 119 4474 6293 -727 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 120 -727 6066 8333 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 121 8333 2267 -4526 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 122 -4526 2259 8341 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 123 8341 6082 -703 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 124 -703 5869 11962 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 125 11962 6093 -479 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 126 -479 6361 4994 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 127 4994 3627 -5947 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 128 -5947 2320 6301 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 129 6301 3981 -4286 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 130 -4286 4591 5081 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 131 5081 5571 -2326 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 132 -2326 6059 2641 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 133 2641 4505 -8542 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 134 -8542 4037 3109 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 135 3109 5290 -4783 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 136 -4783 4276 5137 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 137 5137 5998 -1339 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 138 -1339 6053 4642 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 139 4642 3231 -6983 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 140 -6983 3752 4121 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 141 4121 4490 -5507 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 142 -5507 6524 53 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45] 143 53 6514 -7967 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32] 144 -7967 1453 5114 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32] 145 5114 3661 -5759 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32] 146 -5759 2098 6677 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32] 147 6677 4579 -3278 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32] 148 -3278 5255 4649 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32] 149 4649 4043 -5702 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32] 150 -5702 1659 7033 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32] 151 7033 5374 -1987 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32] 152 -1987 4561 11098 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32] 153 11098 6537 -11 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32] 154 -11 6542 5153 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 155 5153 3764 -5567 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 156 -5567 1803 7114 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 157 7114 5311 -2059 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 158 -2059 4984 8749 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 159 8749 3765 -3278 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 160 -3278 6069 1837 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 161 1837 4953 -9974 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 162 -9974 5021 1769 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 163 1769 5593 -6542 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 164 -6542 949 6413 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 165 6413 5464 -2027 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 166 -2027 4671 10378 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 167 10378 5707 -991 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 168 -991 6185 4642 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 169 4642 3099 -7163 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 170 -7163 4064 3677 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 171 3677 3290 -8711 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 172 -8711 5421 1546 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 173 1546 5401 -8851 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 174 -8851 3450 3497 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 175 3497 3544 -8663 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 176 -8663 5119 1922 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 177 1922 6413 -899 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 178 -899 6173 5282 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 179 5282 4391 -4463 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 180 -4463 4535 4994 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 181 4994 5453 -2627 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 182 -2627 5055 6586 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 183 6586 1531 -6151 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 184 -6151 4620 3497 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 185 3497 5871 -2398 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 186 -2398 6119 2257 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 187 2257 5166 -7163 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 188 -7163 1997 5426 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 189 5426 3429 -5731 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 190 -5731 2302 6553 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 191 6553 4251 -3782 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 192 -3782 3313 8429 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 193 8429 5116 -1979 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 194 -1979 4779 10114 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 195 10114 5335 -1423 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 196 -1423 6049 4402 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 197 4402 2755 -8011 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 198 -8011 5256 1901 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 199 1901 6150 -2647 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 200 -2647 4438 8749 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 201 8749 4311 -2774 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 202 -2774 4011 9649 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 203 9649 5638 -1147 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 204 -1147 5832 7709 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 205 7709 1877 -5102 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 206 -5102 3225 6361 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 207 6361 3136 -5191 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 208 -5191 2055 7442 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 209 7442 5387 -1859 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 210 -1859 5767 5162 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 211 5162 4557 -4279 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 212 -4279 4001 6274 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 213 6274 2273 -6007 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 214 -6007 3734 4813 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 215 4813 5892 -1691 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 216 -1691 5945 4442 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 217 4442 2939 -7703 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 218 -7703 4764 2617 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 219 2617 5704 -3943 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 220 -3943 6125 1354 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 221 1354 6061 -4519 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 222 -4519 2977 7522 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 223 7522 4545 -2951 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 224 -2951 4308 8233 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 225 8233 3925 -3334 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 226 -3334 6077 1777 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 227 1777 6362 -1339 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 228 -1339 5689 7834 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 229 7834 2145 -4883 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 230 -4883 2738 7241 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 231 7241 4503 -3118 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 232 -3118 4851 6197 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 233 6197 1346 -6623 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 234 -6623 5277 2266 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 235 2266 6053 -2743 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 236 -2743 4919 6802 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 237 6802 1883 -5779 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 238 -5779 3896 4789 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 239 4789 5682 -2207 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 240 -2207 5353 6434 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 241 6434 1081 -6479 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 242 -6479 5398 2117 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 243 2117 5187 -7534 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 244 -7534 2347 4957 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 245 4957 2610 -7271 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 246 -7271 4661 2906 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 247 2906 4057 -9083 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 248 -9083 5026 1937 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 249 1937 4659 -10918 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 250 -10918 6259 337 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 251 337 6210 -12731 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 252 -12731 6521 26 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5] 253 26 6531 -7711 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 254 -7711 1180 5377 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 255 5377 4197 -4694 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 256 -4694 5191 3389 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 257 3389 4976 -5339 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 258 -5339 5702 1937 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 259 1937 5920 -4031 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 260 -4031 6173 1178 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 261 1178 5607 -9691 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 262 -9691 4084 2701 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 263 2701 4019 -9886 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 264 -9886 5867 853 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 265 853 6075 -6974 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 266 -6974 899 6029 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 267 6029 5130 -2743 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 268 -2743 5842 3181 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 269 3181 3701 -9166 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 270 -9166 5465 1417 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 271 1417 5871 -5918 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 272 -5918 5965 1229 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 273 1229 6325 -2318 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 274 -2318 5265 6529 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 275 6529 1264 -6319 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 276 -6319 5055 2738 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 277 2738 5897 -2951 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 278 -2951 5907 2698 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 279 2698 4885 -7039 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 280 -7039 2154 5429 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 281 5429 3275 -5918 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 282 -5918 2643 6061 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 283 6061 3418 -5143 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 284 -5143 1725 7754 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 285 7754 6029 -839 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 286 -839 5717 12122 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 287 12122 6405 -151 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1] 288 -151 6430 9997 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 289 9997 3567 -3014 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 290 -3014 5475 4273 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 291 4273 3071 -7822 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 292 -7822 4751 2593 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 293 2593 5621 -4342 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 294 -4342 3063 7709 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 295 7709 4646 -2759 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 296 -2759 6390 733 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 297 733 6071 -8182 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 298 -8182 2111 4693 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 299 4693 2582 -7711 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 300 -7711 5129 2146 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 301 2146 5601 -5351 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 302 -5351 5101 3146 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 303 3146 4337 -7643 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 304 -7643 3306 4177 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 305 4177 5048 -4159 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 306 -4159 3270 7733 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 307 7733 4463 -2966 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 308 -2966 4435 7817 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 309 7817 3382 -4019 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 310 -4019 4656 5269 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 311 5269 5882 -1567 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 312 -1567 5087 10834 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 313 10834 5747 -907 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 314 -907 6044 6973 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 315 6973 929 -6022 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] 316 -6022 5093 2809 [149, 9, 211, 34, 227, 2, 143, 27, 137, 45, 53, 32, 11, 5, 13, 1, 151, 3] ------------------------- 0 -53 6524 5507 1 5507 4490 -4121 2 -4121 3752 6983 3 6983 3231 -4642 4 -4642 6053 1339 5 1339 5998 -5137 6 -5137 4276 4783 7 4783 5290 -3109 8 -3109 4037 8542 9 8542 4505 -2641 10 -2641 6059 2326 11 2326 5571 -5081 12 -5081 4591 4286 13 4286 3981 -6301 14 -6301 2320 5947 15 5947 3627 -4994 16 -4994 6361 479 17 479 6093 -11962 18 -11962 5869 703 19 703 6082 -8341 20 -8341 2259 4526 21 4526 2267 -8333 22 -8333 6066 727 23 727 6293 -4474 24 -4474 2655 8003 25 8003 5348 -1781 26 -1781 5338 8063 27 8063 2725 -4394 28 -4394 6063 1387 29 1387 6420 -1181 30 -1181 5390 11687 31 11687 6297 -274 32 -274 6307 11227 33 11227 4920 -1661 34 -1661 5046 10471 35 10471 5425 -1282 36 -1282 6113 4279 37 4279 2445 -8618 38 -8618 6173 551 39 551 6500 -1097 40 -1097 5567 10814 41 10814 5247 -1417 42 -1417 6089 4078 43 4078 6145 -1249 44 -1249 6345 2078 45 2078 6123 -2581 46 -2581 4201 9766 47 9766 5565 -1217 48 -1217 5388 11359 49 11359 5971 -634 50 -634 6075 9383 51 9383 3308 -3401 52 -3401 3494 9011 53 9011 5517 -1378 54 -1378 5507 9091 55 9091 3584 -3301 56 -3301 6319 886 57 886 6085 -6577 58 -6577 492 6479 59 6479 5987 -1082 60 -1082 5915 7271 61 7271 1356 -5641 62 -5641 4285 4342 63 4342 4399 -5413 64 -5413 6427 286 65 286 6443 -4693 66 -4693 2943 7286 67 7286 4343 -3293 68 -3293 5536 3707 69 3707 5585 -3146 70 -3146 3853 8903 71 8903 5050 -1949 72 -1949 4695 10678 73 10678 5983 -661 74 -661 5915 11902 75 11902 5987 -589 76 -589 6382 3607 77 3607 4439 -6418 78 -6418 1979 6067 79 6067 4088 -4309 80 -4309 4530 5183 81 5183 5836 -1697 82 -1697 6043 3734 83 3734 5159 -4349 84 -4349 3539 6974 85 6974 3435 -4453 86 -4453 5471 2902 87 2902 6137 -1789 88 -1789 6386 1159 89 1159 6363 -2042 90 -2042 5889 4003 91 4003 6120 -1349 92 -1349 6021 4894 93 4894 3767 -5857 94 -5857 2090 6571 95 6571 4481 -3466 96 -3466 5917 2263 97 2263 5398 -6061 98 -6061 663 6998 99 6998 6335 -389 100 -389 6502 1487 101 1487 5394 -9253 102 -9253 3859 3022 103 3022 5207 -5209 104 -5209 5211 3014 105 3014 3831 -9349 106 -9349 5518 1327 107 1327 6425 -1186 108 -1186 5435 11227 109 11227 5792 -829 110 -829 5814 10919 111 10919 5105 -1538 112 -1538 5661 7027 113 7027 1366 -5833 114 -5833 4467 3926 115 3926 3385 -7997 116 -7997 4612 2699 117 2699 6184 -1709 118 -1709 5779 5534 119 5534 5289 -2689 120 -2689 5467 4822 121 4822 4177 -5269 122 -5269 6361 454 123 454 6351 -5549 124 -5549 4747 3662 125 3662 6239 -1073 126 -1073 5564 11087 127 11087 5523 -1114 128 -1114 5617 10147 129 10147 4530 -2201 130 -2201 6475 422 131 422 6185 -10901 132 -10901 4716 1891 133 1891 4739 -10786 134 -10786 6047 583 135 583 6196 -7657 136 -7657 1461 5318 137 5318 3857 -5261 138 -5261 1404 7771 139 7771 6367 -298 140 -298 6447 4331 141 4331 6546 -1 142 -1 6546 4331 1 ```