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

### 2.2　補助方程式による解

#### (2) プログラム

ａ＝１の場合、ａ＝２の場合、ａ＞５の場合でプログラムを分ける。

#### ａ＝１の場合

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

#### ａ＝２の場合

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

#### ａ＞５の場合（奇数）

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

#### ａ＞５の場合（偶数）

``` 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%)
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 について調べたところ、ａ＝１の場合、ａ＞５の場合（奇数）について、

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

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