2.<定義2>による探査

2.2 補助方程式による解

(2) プログラム

a=1の場合、a=2の場合、a>5の場合でプログラムを分ける。

a=1の場合

 10   ' print=print+"g_odd_u.txt"
 20   K%=32767:L%=89:dim G%(L%):gosub 130:' set congruum into g%()
 30   for M%=3 to K% step 2:M4=M%^4
 40     for N%=1 to M%-2 step 2:if gcd(M%,N%)>1 then 90 else N4=N%^4
 50       for I%=1 to L%:B2=G%(I%)^2
 60         Z2=2*(M4+B2*N4):Z=isqrt(Z2):if res>0 then 80
 70         gosub 210
 80       next I%
 90     next N%
100   next M%
110   end
120   ' congruum
130   for I%=1 to L%:read W%:G%(I%)=W%:next I%:return
140   data 101,103,127,157,173,181,191,197,199,223,229,237,263,269,271,277
150   data 293,303,311,317,365,367,373,389,397,407,413,415,421,431,439,453
160   data 461,463,487,493,501,503,519,541,543,557,573,583,597,599,607,613
170   data 623,631,647,653,661,677,685,695,701,703,717,727,733,743,757,767
180   data 773,781,789,797,807,815,823,829,831,853,863,877,887,893,911,917
190   data 919,933,941,965,967,983,989,991,997
200   ' g_prt.ub
210   print G%(I%);"(";1;") :";M%;",";N%;":";
220   X=M%^2+G%(I%)*N%^2:Y=M%^2-G%(I%)*N%^2:reduce X,Y
230   print X;Y;":";:M=X^2:N=Y^2:print M;N
240   return

a=2の場合

 10   ' print=print+"g_even_u.txt"
 20   K%=32767:L%=32:dim G%(L%),B(L%):gosub 130:' set congruum into g%()
 30   for M%=2 to K%:M4=M%^4
 40     for N%=1 to M%-1:if gcd(M%,N%)>1 then 90 else N4=N%^4
 50       for I%=1 to L%:B2=G%(I%)^2
 60         Z=isqrt(M4+B(I%)*N4):if res>0 then 80
 70         gosub 170
 80       next I%
 90     next N%
100   next M%
110   end
120   ' congruum
130   for I%=1 to L%:read W%:G%(I%)=W%:B(I%)=W%^2\4:next I%:return
140   data 118,142,278,302,326,334,358,382,398,446,454,478,502,542,566,614
150   data 638,662,718,742,758,766,822,838,862,878,886,926,958,974,982,998
160   ' g_prt.ub
170   print G%(I%);"(";2;") :";M%;",";N%;":";
180   X=M%^2+G%(I%)*N%^2:Y=M%^2-G%(I%)*N%^2:reduce X,Y
190   print X;Y;":";:M=X^2:N=Y^2:print M;N
200   return

a>5の場合(奇数)

 10   ' print=print+"g_aux5.txt"
 20   E%=11000:word 10:dim T(E%):for I%=1 to E%:T(I%)=I%^4:next I%
 30   K%=32767:L%=57:dim G%(L%),A%(L%),B%(L%),C(L%)
 40   for I%=1 to L%:read D%:G%(I%)=D%:read D%:A%(I%)=D%:read D%:B%(I%)=D%
 50     C(I%)=B%(I%)^2
 60   next I%
 70   '
 80   for M%=3 to K% step 2:if M%<=E% then M4=T(M%) else M4=M%^4
 90     for N%=1 to M%-2 step 2:if gcd(M%,N%)>1 then 170
100       if N%<=E% then N4=T(N%) else N4=N%^4
110       for I%=1 to L%
120         Z2=2*(M4+C(I%)*N4):if A%(I%)=1 then 140
130         Z2=Z2\A%(I%):if res>0 then 160
140         Z=isqrt(Z2):if res>0 then 160
150         gosub 210
160       next I%
170     next N%
180   next M%
190   end
200   ' g_prt.ub
210   print G%(I%);"(";A%(I%);") :";M%;",";N%;":";
220   X=M%^2+B%(I%)*N%^2:Y=M%^2-B%(I%)*N%^2:reduce X,Y:print X;",";Y
230   return
240   '    g  ,a, b
250   data 365,5,73 , 415,5,83 , 685,5,137, 695,5,139, 815,5,163
260   data 965,5,193, 767,13,59, 493,17,29, 493,29,17, 407,37,11
270   data 703,37,19, 583,53,11, 365,73,5 , 623,89,7 , 101,101,1
280   data 303,101,3, 685,137,5, 157,157,1, 173,173,1, 519,173,3
290   data 181,181,1, 543,181,3, 965,193,5, 197,197,1, 229,229,1
300   data 269,269,1, 807,269,3, 277,277,1, 831,277,3, 293,293,1
310   data 317,317,1, 365,365,1, 373,373,1, 389,389,1, 397,397,1
320   data 421,421,1, 461,461,1, 493,493,1, 541,541,1, 557,557,1
330   data 613,613,1, 653,653,1, 661,661,1, 677,677,1, 685,685,1
340   data 701,701,1, 733,733,1, 757,757,1, 773,773,1, 797,797,1
350   data 829,829,1, 853,853,1, 877,877,1, 911,911,1, 941,941,1
360   data 965,965,1, 997,997,1

a>5の場合(偶数)

 10   ' print=print+"g_aux58.txt"
 20   E%=11000:word 10:dim T(E%):for I%=1 to E%:T(I%)=I%^4:next I%
 30   K%=32767:L%=3:dim G%(L%),A%(L%),B%(L%),C%(L%)
 40   for I%=1 to L%:read D%:G%(I%)=D%:read D%:A%(I%)=D%:read D%:B%(I%)=D%
 50     C%(I%)=B%(I%)^2
 60   next I%
 70   '
 80   for M%=2 to K%:if M%'lt;=E% then M4=T(M%) else M4=M%^4
 90     for N%=1 to M%-1:if gcd(M%,N%)>1 then 160
100       if N%<=E% then N4=T(N%) else N4=N%^4
110       for I%=1 to L%
120         Z2=2*(M4+C%(I%)*N4)\A%(I%):if res>0 then 150
130         Z=isqrt(Z2):if res>0 then 150
140         gosub 200
150       next I%
160     next N%
170   next M%
180   end
190   ' g_prt.ub
200   print G%(I%);"(";A%(I%);") :";M%;",";N%;":";
210   X=M%^2+B%(I%)*N%^2:Y=M%^2-B%(I%)*N%^2:reduce X,Y:print X;",";Y
220   return
230   '    g  ,a, b
240   data 638,58,11,742,106,7,822,274,3

32,767以下の m, n について調べたところ、a=1の場合、a>5の場合(奇数)について、
新たに以下の 13個 について解が求められた。

103, 199, 271, 303, 415, 431, 439, 519, 703, 767,
807, 815, 919

実行結果は以下のとおり。

解が依然見つかっていないのは、以下の 108個

101, 118, 127, 142, 157, 173, 191, 197,
223, 229, 237, 263, 269, 277, 278, 293,
302, 311, 317, 326, 327, 334, 358, 365, 367, 373, 382, 389, 397, 398,
407, 413, 421, 446, 453, 454, 461, 463, 478, 487, 493,
501, 502, 503, 541, 542, 543, 557, 566, 573, 583, 597, 599,
607, 613, 614, 623, 631, 638, 647, 653, 661, 662, 677, 685, 695,
701, 717, 718, 727, 733, 742, 743, 757, 758, 766, 773, 781, 789, 797,
822, 823, 829, 831, 838, 853, 862, 863, 877, 878, 886, 887, 893,
911, 917, 926, 933, 941, 958, 965, 967, 974, 982, 983, 989, 991, 997, 998

この章の目次

E-mail : kc2h-msm@asahi-net.or.jp
三島 久典