## ２．＜定義２＞による探査

### 2.1　ｘ、ｙ についての単純ループ

#### (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
```

これを、ｘ、ｙ、ｇのループの、ｇのループ部分として 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以下のｙについて調べたところ、新たに以下の５個について解が求められた。

53, 181, 349, 485, 533

```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