# Verifying the absence of triple solutions to a^x +/- b^y = c
# Nov 3, 2003
#
# This program finds all cases (excluding some infinite families) of two solutions to $\pm a^x \pm b^y = c$ that could potentially have a third solution, using the bounds found in Theorems 2 and 3 of the paper "On $\pm a^x \pm b^y = c$ not having three solutions."
#
# Note that the notations here do not correspond to those in the paper "On $\pm a^x \pm b^y = c$ not having three solutions."
#
# In the finding_i_t procedure: t corresponds to t in Thm 3, and i corresponds to x_2 - x_1 in Thm 3.
#
# In the finding_j_s procedure, the lines temp1=1 and temp2=1 correspond in Thm 3 to b^(T-t) \pm 1 = r = (a^(x_2-x_1) \pm 1)/b^t which is equivalent to b^T = \pm a^{x_1} \pm b^t + a^{x_2}. The j corresponds to x_1, the i corresponds to x_2 - x_1, t corresponds to t, and s corresponds to T-t.
#
# In the finding_n procedure, the several choices of a correspond to k-2 in Lemma 5. Then n+2 corresponds to r+z+j+k in Lemma 5, which gives the upper bound on x_2 in Thm 3. Note that in the procedure finding_j_z, we use N = n+1-i for the upper bound on x_1, and so this means n is an upper bound on x_1 and n+1 is an upper bound on x_2, so n+2 is strictly bigger than x_2, which corresponds to the bound r+z+j+k in Lemma 5.
#
# In the finding_w0 procedure, either w0 = 0 when j=0 in Lemma 3, or the w0 equals the j in Lemma 3 when 2^g = b+1, and the w0 is greater or equal to the j in Lemma 3 if 2^g strictly divides b \pm 1 in any case. (We improved the proofs and changed the notation in the paper after writing the Maple program.)
#
# In the finding_u0_L_z0 procedure, the v0 corresponds to the n0 of Lemma 3, and the capital L corresponds to the small l in the Lemma. The u0 corresponds to the r in Lemma 3. The alpha and beta and z correspond to the alpha_i, beta_i, and z_i in Lemma 3, respectively. The z0 corresponds to the z in Lemma 3.
# We have cut and paste the results here: the order is a,b, then the two exponents for a, then the two exponents for b, and finally the c which is preceded by a zero if the lower set of exponents uses the plus sign . Note we have a>2, but if both a and b are odd, our program finds the same result with a and b reversed, so there are 20 results listed, but only 17 distinct pairs of equations, and only 11 distinct sets {a,b,c}.
3, 2, 1, 2, 2, 3, -1
3, 2, 2, 3, 2, 5, 5
3, 2, 1, 2, 1, 3, 1
3, 2, 2, 3, 1, 4, 0, 11
3, 2, 1, 3, 1, 5, 0, 5
3, 2, 1, 3, 3, 5, -5
3, 2, 1, 3, 3, 4, 0, 11
3, 2, 2, 5, 2, 8, 0, 13
3, 2, 1, 5, 4, 8, -13
3, 5, 1, 3, 1, 2, -2
3, 13, 1, 7, 1, 3, -10
5, 2, 1, 2, 1, 5, 0, 7
5, 2, 1, 3, 1, 7, 3
5, 2, 1, 3, 3, 7, -3
5, 3, 1, 2, 1, 3, 2
5, 279, 1, 7, 1, 2, 0, 284
11, 2, 1, 2, 2, 7, 7
13, 3, 1, 3, 1, 7, 10
91, 2, 1, 2, 1, 13, 89
279, 5, 1, 2, 1, 7, 0, 284
#
>
> restart;
> with(numtheory);
Warning, the protected name order has been redefined and unprotected
[GIgcd, bigomega, cfrac, cfracpol, cyclotomic, divisors, factorEQ, factorset,
fermat, imagunit, index, integral_basis, invcfrac, invphi, issqrfree,
jacobi, kronecker, lambda, legendre, mcombine, mersenne, migcdex, minkowski,
mipolys, mlog, mobius, mroot, msqrt, nearestp, nthconver, nthdenom,
nthnumer, nthpow, order, pdexpand, phi, pi, pprimroot, primroot, quadres,
rootsunity, safeprime, sigma, sq2factor, sum2sqr, tau, thue]
> finding_u0_L_z0 := proc(a,b)
> local ord, v0, pmone, u0, L, z0, temp, pset, N, i, j, p, alpha, beta, z;
> ord := order(b,a);
> v0 := ord;
> pmone := -1;
> if ord mod 2 = 0 then
> if ((b&^(ord/2) mod a) + 1) mod a = 0 then
> v0:= ord/2;
> pmone := +1;
> fi;
> fi;
> for u0 from 1 while (( b&^v0) mod (a^u0) +pmone) mod (a^u0) = 0
> do od;
> u0 := u0-1;
> L := ((b&^v0) mod (2*a) +pmone) mod(2*a);
> pset := factorset( igcd(a,L) );
> z0 := 0;
> if igcd(a,L) > 1 then
> N := nops(pset);
> for i from 1 to N do
> p := pset[i];
> for j from 0 while a mod p^j = 0 do od;
> alpha := j-1;
> for j from 0 while ((b&^v0 mod p^j) +pmone) mod p^j = 0 do od;
> beta := j-1;
> z := ceil(beta/alpha);
> z0 := max(z,z0);
> od;
> fi;
> [u0, L, z0];
> end:
> finding_w0 := proc(a, b, u0, z0, L)
> local w0;
> w0 := 0;
> if (a-2) mod 4 = 0 and u0 = 1 and L mod 2 <> 0 then
> w0 := ceil( log( (b+1)/2^(z0+1))/log(a)) ;
> fi;
> w0;
> end:
> finding_n := proc(a,b)
> local temp, u0, L, z0, w0, n;
> temp:= finding_u0_L_z0(a,b);
> u0 := temp[1];
> L := temp[2];
> z0 := temp[3];
> w0 := finding_w0(a,b,u0, z0,L);
> if a>126 then n := u0+z0+w0; else
> if a=3 then n := u0+z0+w0+6; fi;
> if a=5 then n := u0+z0+w0+4; fi;
> if a=6 or a=7 then n := u0+z0+w0+3; fi;
> if 9 if 21 fi;
> n;
> end:
> finding_j_s := proc(a,i, pmone, b, t, n)
> local j, k, s, r, N, temp1, temp2;
> if t>0 then
> N := n+1-i;
> r := (a^i+pmone)/b^t;
> for j from 1 to N do
> temp1 := a^j*r + 1;
> for k from 0 while temp1 mod b = 0 do temp1 := temp1/b; od;
> if temp1 = 1 then
> s := k;
> if i<>j or s<>t then
> if pmone = -1 then
> print(a,b,j,i+j,t, s+t, a^j - b^t);
> else print(a,b,j,i+j,t, s+t, 0, a^j+b^t);
> fi;
> fi;
> fi;
> temp2 := a^j*r - 1;
> for k from 0 while temp2 mod b = 0
> do temp2 := temp2/b; od;
> if temp2 = 1 then
> s := k;
> if i<>j or s<>t then
> if pmone = +1 then
> print(a,b,j,i+j,t, s+t, a^j - b^t);
> else print(a,b,j,i+j,t, s+t, 0, a^j+b^t);
> fi;
> fi;
> fi;
> od;
> fi;
> end:
> finding_i_t := proc(a,b,n)
> local temp1, temp2, pmone, i, k, t;
> for i from 1 to n do
> temp1 := a^i+1;
> pmone := +1;
> for k from 0 while temp1 mod b = 0 do temp1 := temp1/b; od;
> t := k;
> if t > 0 then finding_j_s(a,i, pmone, b, t, n); fi;
> temp2 := a^i-1;
> pmone := -1;
> for k from 0 while temp2 mod b = 0 do temp2 := temp2/b; od;
> t := k;
> if t > 0 then finding_j_s(a,i, pmone, b, t, n); fi;
> od;
> end:
> mainbody:= proc(a,b)
> local n;
> if igcd(a,b) = 1 then
> if iperfpow(a) = FAIL then
> if iperfpow(b) = FAIL then
> n := finding_n(a,b);
> finding_i_t(a,b,n);
> fi;
> fi;
> fi;
> end:
#
>
>
# Begin actual computations.
> for a from 3 to 24332 do
> for b from 2 to 24332 do
> mainbody(a,b);
> od;
> if a mod 100 = 0 then print(a); fi;
> od;
3, 2, 1, 2, 2, 3, -1
3, 2, 2, 3, 2, 5, 5
3, 2, 1, 2, 1, 3, 1
3, 2, 2, 3, 1, 4, 0, 11
3, 2, 1, 3, 1, 5, 0, 5
3, 2, 1, 3, 3, 5, -5
3, 2, 1, 3, 3, 4, 0, 11
3, 2, 2, 5, 2, 8, 0, 13
3, 2, 1, 5, 4, 8, -13
3, 5, 1, 3, 1, 2, -2
3, 13, 1, 7, 1, 3, -10
5, 2, 1, 2, 1, 5, 0, 7
5, 2, 1, 3, 1, 7, 3
5, 2, 1, 3, 3, 7, -3
5, 3, 1, 2, 1, 3, 2
5, 279, 1, 7, 1, 2, 0, 284
11, 2, 1, 2, 2, 7, 7
13, 3, 1, 3, 1, 7, 10
91, 2, 1, 2, 1, 13, 89
100
200
279, 5, 1, 2, 1, 7, 0, 284
300
400
500
600
700
800
Warning, computation interrupted
> a;b;
874
363
# Checking b=2 only
> for a from 3 to 24333 do
> for b from 2 to 2 do
> mainbody(a,b);
> od;
> if a mod 2000 = 0 then print(a); fi;
> od;
3, 2, 1, 2, 2, 3, -1
3, 2, 2, 3, 2, 5, 5
3, 2, 1, 2, 1, 3, 1
3, 2, 2, 3, 1, 4, 0
3, 2, 1, 3, 1, 5, 0
3, 2, 1, 3, 3, 5, -5
3, 2, 1, 3, 3, 4, 0
3, 2, 2, 5, 2, 8, 0
3, 2, 1, 5, 4, 8, -13
5, 2, 1, 2, 1, 5, 0
5, 2, 1, 3, 1, 7, 3
5, 2, 1, 3, 3, 7, -3
11, 2, 1, 2, 2, 7, 7
91, 2, 1, 2, 1, 13, 89
2000
4000
6000
8000
10000
12000
14000
16000
18000
20000
22000
24000
# We reworked our proof to allow us to sieve only half as many cases, i.e., only those with b > a. We will begin at a=400, since we have done farther than this bound already.
# Note that the memory allocation of Maple is not optimal for numerical calculations, so the time it takes for a series of runs depends on how many previous runs one has done. We will show the time on some runs to illustrate this dependency on the length of a previous run. Breaks in the calculation indicate that we closed Maple and restarted it to clear the memory allocations.
# So our new module:
> tim:= time():
> for a from 400 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 100 = 0 then print(a, time() - tim); tim := time(); fi;
> od;
400, 1.578
500, 7824.184
600, 16988.483
700, 27715.107
800, 37269.832
900, 50372.878
1000, 62633.811
1100, 81289.776
1200, 94735.705
Warning, computation interrupted
> a;b;
1231
22746
> tim:= time():
> for a from 1231 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 100 = 0 then print(a, time() - tim); tim := time(); fi;
> od;
1300, 4970.174
1400, 15491.633
1500, 26330.991
Warning, computation interrupted
> a;b;
1544
21949
> tim:= time():
> for a from 1544 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 100 = 0 then print(a, time() - tim); tim := time(); fi;
> od;
1600, 3623.801
1700, 14617.075
1800, 25116.276
Warning, computation interrupted
> a;b;
1875
16319
> tim:= time():
> for a from 1875 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 100 = 0 then print(a, time() - tim); tim := time(); fi;
> od;
1900, 1254.609
2000, 11496.776
2100, 21660.336
Warning, computation interrupted
> a;b;
2195
5598
> tim:= time():
> for a from 2195 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 100 = 0 then print(a, time() - tim); tim := time(); fi;
> od;
2200, 146.453
2300, 8696.130
2400, 18350.474
2500, 29144.745
2600, 40256.548
2700, 52386.076
2800, 64990.075
2900, 74250.081
Warning, computation interrupted
> a;b;
2937
5686
> tim:= time():
> for a from 2937 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 100 = 0 then print(a, time() - tim); tim := time(); fi;
> od;
3000, 4089.636
3100, 13941.406
3200, 23602.029
3300, 33659.493
3400, 43780.225
Warning, computation interrupted
> a;b;
3495
14761
> for a from 3060 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 20 = 0 then print(a); fi;
> od;
3060
3080
3100
3120
3140
3160
3180
3200
3220
3240
3260
3280
3300
3320
3340
3360
3380
3400
3420
3440
3460
3480
3500
3520
3540
3560
3580
3600
3620
3640
3660
3680
Warning, computation interrupted
> a;b;
3699
19021
> for a from 3699 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 20 = 0 then print(a); fi;
> od;
3700
3720
3740
3760
3780
3800
3820
3840
3860
3880
3900
3920
3940
3960
3980
4000
4020
4040
4060
4080
4100
4120
4140
4160
4180
4200
4220
4240
Warning, computation interrupted
> a;b;
4253
15944
> for a from 4253 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 20 = 0 then print(a); fi;
> od;
4260
4280
4300
4320
4340
4360
4380
4400
4420
4440
4460
4480
4500
4520
4540
4560
4580
4600
Warning, computation interrupted
> a;b;
4619
18888
> tim:= time():
> for a from 4619 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 100 = 0 then print(a, time() - tim); tim := time(); fi;
> od;
4700, 5344.092
4800, 13689.022
4900, 22533.060
5000, 31389.309
5100, 38699.480
Warning, computation interrupted
> a;b;
5178
12589
>
> for a from 5040 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 20 = 0 then print(a); fi;
> od;
5040
5060
5080
5100
5120
5140
5160
5180
5200
5220
5240
5260
5280
5300
5320
5340
5360
5380
5400
5420
Warning, computation interrupted
> a;b;
5431
18148
> for a from 5431 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 20 = 0 then print(a); fi;
> od;
5440
5460
5480
5500
5520
5540
5560
5580
5600
5620
5640
5660
5680
5700
5720
5740
5760
5780
5800
5820
5840
5860
Warning, computation interrupted
> a;b;
5867
19299
> for a from 5867 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 20 = 0 then print(a); fi;
> od;
5880
5900
5920
5940
5960
5980
6000
6020
6040
6060
6080
6100
6120
6140
6160
6180
6200
6220
6240
6260
Warning, computation interrupted
> a;b;
6265
15682
> for a from 6265 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 20 = 0 then print(a); fi;
> od;
6280
6300
6320
6340
6360
6380
6400
6420
6440
6460
6480
6500
6520
6540
6560
6580
6600
6620
6640
6660
6680
6700
6720
6740
6760
6780
6800
6820
6840
6860
6880
6900
6920
6940
6960
6980
7000
7020
7040
7060
7080
7100
7120
7140
7160
7180
Warning, computation interrupted
> a;b;
7183
14324
> for a from 7183 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 20 = 0 then print(a); fi;
> od;
7200
7220
7240
7260
7280
7300
7320
7340
7360
7380
7400
7420
7440
7460
7480
7500
7520
7540
7560
7580
7600
Warning, computation interrupted
> a;b;
7604
15051
> for a from 7604 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 20 = 0 then print(a); fi;
> od;
7620
7640
7660
7680
7700
7720
7740
7760
7780
7800
7820
7840
7860
7880
7900
7920
7940
7960
7980
8000
8020
Warning, computation interrupted
> a;b;
8035
22249
> for a from 8035 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 20 = 0 then print(a); fi;
> od;
8040
8060
8080
8100
8120
8140
8160
8180
8200
8220
8240
8260
8280
8300
8320
8340
8360
8380
8400
8420
8440
8460
8480
8500
8520
Warning, computation interrupted
> a;b;
8533
9992
> tim:= time():
> for a from 8533 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 20 = 0 then print(a, time() - tim); tim := time(); fi;
> od;
8540, 202.579
8560, 709.313
8580, 955.359
8600, 1210.782
8620, 1376.769
8640, 1580.296
8660, 1714.546
8680, 1882.626
8700, 2205.422
8720, 2575.469
8740, 2670.328
8760, 2932.642
8780, 3129.237
8800, 3082.533
8820, 3349.141
8840, 3626.923
8860, 4067.467
8880, 4201.624
8900, 4482.532
8920, 4953.935
8940, 5175.315
8960, 5239.562
8980, 5351.970
9000, 5358.594
9020, 5926.986
9040, 5394.266
9060, 6077.282
9080, 6429.127
9100, 6713.656
9120, 7296.503
9140, 7169.215
9160, 7633.692
9180, 7899.139
9200, 8623.888
9220, 7899.373
9240, 8375.972
9260, 9541.674
9280, 8638.622
9300, 9647.596
9320, 9700.673
9340, 9806.877
9360, 9851.639
9380, 10861.390
9400, 10559.142
9420, 9830.297
9440, 10772.499
9460, 11103.999
9480, 10898.624
9500, 11158.987
9520, 11602.829
9540, 11985.344
9560, 11994.296
9580, 12057.015
9600, 13156.857
Warning, computation interrupted
> a;b;
9614
23927
> tim:= time():
> for a from 9614 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 20 = 0 then print(a, time() - tim); tim := time(); fi;
> od;
9620, 139.421
9640, 613.659
9660, 840.168
9680, 1049.487
9700, 1209.515
9720, 1467.562
9740, 1628.717
9760, 1639.003
9780, 1947.499
9800, 2196.558
9820, 2211.109
9840, 2520.533
9860, 2693.956
9880, 2816.940
9900, 3036.969
9920, 3349.248
9940, 3396.671
9960, 3812.860
9980, 3832.888
10000, 3984.734
10020, 4386.674
10040, 4554.640
10060, 4657.362
10080, 4586.608
Warning, computation interrupted
> a;b;
10084
21249
> tim:= time():
> for a from 10084 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 20 = 0 then print(a, time() - tim); tim := time(); fi;
> od;
10100, 456.811
10120, 711.909
10140, 903.064
10160, 1094.575
10180, 1190.314
10200, 1410.672
10220, 1436.219
10240, 1654.624
10260, 1873.286
10280, 2175.267
10300, 2298.611
10320, 2544.938
10340, 2709.298
10360, 2553.779
10380, 3136.377
10400, 3168.440
10420, 3264.191
10440, 3651.127
10460, 3854.955
10480, 3886.045
10500, 4151.280
10520, 4772.562
10540, 4671.607
10560, 4844.080
Warning, computation interrupted
> a;b;
10565
16552
> tim:= time():
> for a from 10565 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 20 = 0 then print(a, time() - tim); tim := time(); fi;
> od;
10580, 419.515
10600, 662.763
10620, 768.231
10640, 1009.243
10660, 1111.689
10680, 1301.284
10700, 1442.015
10720, 1648.925
10740, 1780.983
10760, 2033.201
10780, 2046.075
10800, 2345.344
10820, 2485.794
10840, 2600.516
10860, 2629.487
10880, 2879.390
10900, 2991.137
10920, 3280.528
10940, 3579.971
10960, 3778.967
10980, 3825.236
11000, 4076.343
11020, 4190.844
11040, 4171.017
11060, 4677.267
Warning, computation interrupted
> a;b;
11067
13346
> tim:= time():
> for a from 11067 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 20 = 0 then print(a, time() - tim); tim := time(); fi;
> od;
11080, 333.951
11100, 643.237
11120, 791.267
11140, 930.500
11160, 1070.640
11180, 1325.609
11200, 1406.752
11220, 1505.751
11240, 1693.452
11260, 1886.613
11280, 1915.655
11300, 2230.841
11320, 2341.752
11340, 2389.080
11360, 2616.456
11380, 2653.610
11400, 2818.109
11420, 3138.858
11440, 3163.424
11460, 3142.297
11480, 3730.345
11500, 3644.737
11520, 4037.876
11540, 4083.249
11560, 4235.832
11580, 4573.033
11600, 4601.921
11620, 4670.033
11640, 4737.280
11660, 4977.031
11680, 4920.718
11700, 5105.513
11720, 5668.889
11740, 5674.172
11760, 5774.766
11780, 6051.983
11800, 5792.327
11820, 6512.420
11840, 6590.497
11860, 6694.957
11880, 6862.347
11900, 6727.015
11920, 7314.266
11940, 7311.378
11960, 7579.985
11980, 7822.672
12000, 8065.108
12020, 8458.311
12040, 8380.034
12060, 8501.408
12080, 8569.768
12100, 8528.077
12120, 8603.093
12140, 9925.018
12160, 8528.094
12180, 8757.670
12200, 9413.046
12220, 9105.469
12240, 8963.671
12260, 10670.533
12280, 9559.094
Warning, computation interrupted
> a;b;
12297
15779
> tim:= time():
> for a from 12297 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 20 = 0 then print(a, time() - tim); tim := time(); fi;
> od;
12300, 69.188
12320, 517.044
12340, 599.108
12360, 758.217
12380, 852.421
12400, 985.141
12420, 1112.750
12440, 1346.095
12460, 1373.731
12480, 1469.154
12500, 1607.077
12520, 1738.843
12540, 1864.251
12560, 2071.391
12580, 2120.718
12600, 2222.921
12620, 2494.001
12640, 2347.484
12660, 2423.857
12680, 2772.313
12700, 2916.813
12720, 3049.171
12740, 3317.202
12760, 3226.249
12780, 3231.315
12800, 3666.142
12820, 3582.296
12840, 3899.659
12860, 4283.577
12880, 4530.096
12900, 4189.080
12920, 4101.718
Warning, computation interrupted
> a;b;
12929
14180
> tim:= time():
> for a from 12929 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 20 = 0 then print(a, time() - tim); tim := time(); fi;
> od;
12940, 235.625
12960, 493.170
12980, 668.046
13000, 732.833
13020, 841.125
13040, 987.173
13060, 1040.811
13080, 1204.841
13100, 1275.874
13120, 1359.469
13140, 1563.403
13160, 1615.032
13180, 1697.440
13200, 1836.248
13220, 2087.283
13240, 1887.859
13260, 2173.844
13280, 2354.454
13300, 2282.174
13320, 2477.419
13340, 2582.328
13360, 2703.532
13380, 2947.250
13400, 2984.938
13420, 3130.483
13440, 3405.949
13460, 3461.797
13480, 3357.766
13500, 3720.828
13520, 3709.957
13540, 3946.126
13560, 3776.811
13580, 4076.752
13600, 3932.579
13620, 4079.610
13640, 4381.185
Warning, computation interrupted
> a;b;
13644
18073
> tim:= time():
> for a from 13644 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 20 = 0 then print(a, time() - tim); tim := time(); fi;
> od;
13660, 315.702
13680, 519.235
13700, 586.110
13720, 685.357
13740, 833.545
13760, 871.735
13780, 1006.190
13800, 1107.203
13820, 1214.671
13840, 1230.783
13860, 1358.109
13880, 1492.750
13900, 1543.423
13920, 1641.499
13940, 1725.327
13960, 1910.844
13980, 1945.828
14000, 1930.233
14020, 2073.253
14040, 2178.874
14060, 2307.372
14080, 2431.752
14100, 2511.592
14120, 2673.673
14140, 3000.759
14160, 2812.046
14180, 2828.345
14200, 3017.717
Warning, computation interrupted
> a;b;
14204
15117
> tim:= time():
> for a from 14204 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 100 = 0 then print(a, time() - tim); tim := time(); fi;
> od;
14300, 2883.594
14400, 5079.154
14500, 7393.248
14600, 9701.834
14700, 11353.685
14800, 14165.985
14900, 16824.248
Warning, computation interrupted
> a;b;
14976
15749
> tim:= time():
> for a from 14976 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 100 = 0 then print(a, time() - tim); tim := time(); fi;
> od;
15000, 433.516
15100, 3017.998
15200, 4888.827
15300, 6667.171
15400, 8529.614
15500, 10156.288
15600, 12706.364
15700, 14373.359
15800, 15631.184
15900, 17203.511
16000, 19167.252
16100, 21149.703
16200, 23050.231
16300, 25118.426
16400, 26532.799
16500, 27803.152
16600, 29280.141
16700, 29908.899
16800, 31036.956
16900, 32273.328
17000, 33609.138
Warning, computation interrupted
> a;b;
17065
21496
> tim:= time():
> for a from 17065 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 100 = 0 then print(a, time() - tim); tim := time(); fi;
> od;
17100, 495.190
17200, 2255.668
17300, 3425.791
17400, 4354.721
17500, 5528.378
17600, 6598.155
17700, 7203.996
17800, 8535.518
17900, 9872.887
18000, 10496.843
18100, 11568.672
18200, 12126.627
18300, 12823.638
18400, 13594.176
18500, 14676.251
18600, 15568.090
18700, 16363.322
18800, 16829.341
18900, 17493.815
19000, 18195.531
19100, 19047.424
19200, 19917.028
19300, 19655.190
19400, 19105.017
19500, 19516.299
19600, 19621.142
Warning, computation interrupted
> a;b;
19699
19972
> tim:= time():
> for a from 19699 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 100 = 0 then print(a, time() - tim); tim := time(); fi;
> od;
19700, 14.890
19800, 989.614
19900, 1513.938
20000, 1915.073
20100, 2326.750
20200, 2530.844
20300, 2987.812
20400, 3278.575
20500, 3593.686
20600, 3788.719
20700, 3931.081
20800, 4194.249
20900, 4574.859
21000, 4711.111
21100, 4990.874
21200, 5087.316
21300, 5192.769
21400, 5231.126
21500, 5424.409
21600, 5146.141
21700, 5069.705
Warning, computation interrupted
> a;b;
21703
22993
> tim:= time():
> for a from 21703 to 24332 do
> for b from a+1 to 24333 do
> mainbody(a,b);
> od;
> if a mod 100 = 0 then print(a, time() - tim); tim := time(); fi;
> od;
21800, 496.203
21900, 665.250
22000, 763.590
22100, 853.547
22200, 933.233
22300, 980.518
22400, 1053.403
22500, 1082.411
22600, 1064.094
22700, 1065.330
22800, 1083.749
22900, 1062.124
23000, 1092.564
23100, 1015.924
23200, 1006.766
23300, 951.078
23400, 880.984
23500, 816.455
23600, 741.124
23700, 646.548
23800, 571.360
23900, 479.719
24000, 379.469
24100, 272.656
24200, 182.188
24300, 81.126
> a;b;
24333
24334
>
#
#
#
#
#
#
#
#