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

2.1 x、y についての単純ループ

(4) プログラム

まず、1000以下の 4N+1 の形の合同数124個をデータとしてセットするプログラムを用意する。

10   L%=123:dim G%(L%):for I%=1 to L%:read A%:G%(I%)=A%:next I%
20   data 5,13,21,29,37,41,53,61,65,69,77,85,93,101,109,133,137,141
30   data 145,149,157,161,165,173,181,197,205,213,221,229,237,253,257
40   data 265,269,277,285,293,301,309,313,317,341,349,353,357,365,373
50   data 381,389,397,413,421,429,437,445,453,457,461,465,469,485,493
60   data 501,505,509,517,533,541,557,561,565,573,581,589,597,609,613
70   data 629,645,653,661,669,677,685,689,701,709,717,721,733,741,749
80   data 757,761,773,777,781,789,793,797,805,813,821,829,853,861,869
90   data 877,885,889,893,901,905,917,933,941,949,957,965,973,985,989,997

これを、x、y、gのループの、gのループ部分として append する。
プログラムは以下のとおり。

 10   print=print+"g_brute3.txt"
 20   ' g_brute3.ub
 30   M%=32767
 40   L%=124:dim G%(L%):gosub 270:' set congruum into g%()
 50   '
 60   for Y%=905 to M% step 4:Y2=Y%^2
 70     for I%=1 to L%:G=G%(I%)*Y2:if G%(I%)@8=5 then 160
 80       Xe=isqrt(G)
 90       for X=4 to Xe step 4
100         if or{gcd(X,Y%)>1,gcd(X,G%(I%))>1} then 150 else X2=X^2
110         W2=G-X2:if W2<0 then cancel for:goto 240
120         W=isqrt(W2):if res>0 then 150
130         Z=isqrt(X2+G):if res>0 then 150
140         gosub 380
150       next X:goto 240
160       Xe=isqrt(G)
170       for X=2 to Xe step 4
180         if or{gcd(X,Y%)>1,gcd(X,G%(I%))>1} then 230 else X2=X^2
190         W2=G-X2:if W2<0 then cancel for:goto 240
200         W=isqrt(W2):if res>0 then 230
210         Z=isqrt(X2+G):if res>0 then 230
220         gosub 380
230       next X
240     next I%
250   next Y%
260   end
270   ' congruum
280   for I%=1 to L%:read A%:G%(I%)=A%:next I%:return
290   data 5,13,21,29,37,41,53,61,65,69,77,85,93,101,109,133,137,141
300   data 145,149,157,161,165,173,181,197,205,213,221,229,237,253,257
310   data 265,269,277,285,293,301,309,313,317,341,349,353,357,365,373
320   data 381,389,397,413,421,429,437,445,453,457,461,465,469,485,493
330   data 501,505,509,517,533,541,557,561,565,573,581,589,597,609,613
340   data 629,645,653,661,669,677,685,689,701,709,717,721,733,741,749
350   data 757,761,773,777,781,789,793,797,805,813,821,829,853,861,869
360   data 877,885,889,893,901,905,917,933,941,949,957,965,973,985,989,997
370   ' g_prt.ub
380   print G%(I%);":";X;",";Y%;",";Z;",";W;":";G;",";X2;":";
390   print G%(I%)^2*Y%^2;",";G%(I%)^2*Y%*Z*W;",";X
400   return

10,000以下のyについて調べたところ、新たに以下の5個について解が求められた。

53, 181, 349, 485, 533

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

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

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

この章の目次

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