[ create a new paste ] login | about

Link: http://codepad.org/YCJSeh6a    [ raw code | output | fork ]

programmingpraxis - Python, pasted on Jul 4:
# 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)


Output:
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


Create a new paste based on this one


Comments: