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

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

(2) プログラム

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

 10   L%=358:dim G%(L%):for I%=1 to L%:read A%:G%(I%)=A%:print I%,A%:next I%
 20   data 5,6,7,13,14,15,21,22,23,29,30,31,34,37,38,39
 30   data 41,46,47,53,55,61,62,65,69,70,71,77,78,79,85,86
 40   data 87,93,94,95,101,102,103,109,110,111,118,119,127,133,134,137
 50   data 138,141,142,143,145,149,151,154,157,158,159,161,165,166,167,173
 60   data 174,181,182,183,190,191,194,197,199,205,206,210,213,214,215,219
 70   data 221,222,223,226,229,230,231,237,238,239,246,247,253,254,255,257
 80   data 262,263,265,269,271,277,278,285,286,287,291,293,295,299,301,302
 90   data 303,309,310,311,313,317,318,319,323,326,327,330,334,335,341,349
100   data 353,357,358,359,365,366,367,371,373,374,381,382,383,386,389,390
110   data 391,395,397,398,399,406,407,410,413,415,421,422,426,429,430,431
120   data 434,437,438,439,442,445,446,447,453,454,455,457,461,462,463,465
130   data 469,470,471,478,479,485,487,493,494,501,502,503,505,509,510,511
140   data 514,517,518,519,526,527,533,534,535,541,542,543,546,551,557,559
150   data 561,565,566,573,574,581,582,583,589,590,591,597,598,599,602,606
160   data 607,609,613,614,615,622,623,629,631,638,645,646,647,651,653,654
170   data 655,658,661,662,663,669,670,671,674,677,678,679,685,687,689,694
180   data 695,701,703,709,710,717,718,719,721,723,727,731,733,734,741,742
190   data 743,749,751,757,758,759,761,766,767,773,777,781,782,789,790,791
200   data 793,797,798,799,805,806,807,813,814,815,821,822,823,829,830,831
210   data 838,839,853,854,861,862,863,866,869,870,871,877,878,879,885,886
220   data 887,889,890,893,894,895,901,902,903,905,910,911,915,917,919,926
230   data 933,934,935,941,942,943,949,951,957,958,959,965,966,967,973,974
240   data 982,983,985,987,989,991,995,997,998

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

 10   ' print=print+"g_brute.txt"
 20   ' g_brute.ub
 30   M=100001
 40   L%=361:dim G%(L%):gosub 180:' set congruum into g%()
 50   '
 60   for X=5 to M step 4:X2=X^2:Ey=int(X/sqrt(5))
 70     for Y=2 to Ey step 2:if gcd(X,Y)>1 then 150 else Y2=Y^2
 80       for I%=1 to L%:if gcd(X,G%(I%))>1 then 140
 90         G=G%(I%)*Y2:if G@8>0 then 140
100         W2=X2-G:if W2<0 then cancel for:goto 150
110         W=isqrt(W2):if res>0 then 140
120         Z=isqrt(X2+G):if res>0 then 140
130         gosub 450
140       next I%
150     next Y
160   next X
170   end
180   ' congruum
190   for I%=1 to L%:read A%:G%(I%)=A%:next I%:return
200   data 5,6,7,13,14,15,21,22,23,29,30,31,34,37,38,39
210   data 41,46,47,53,55,61,62,65,69,70,71,77,78,79,85,86
220   data 87,93,94,95,101,102,103,109,110,111,118,119,127,133,134,137
230   data 138,141,142,143,145,149,151,154,157,158,159,161,165,166,167,173
240   data 174,181,182,183,190,191,194,197,199,205,206,210,213,214,215,219
250   data 221,222,223,226,229,230,231,237,238,239,246,247,253,254,255,257
260   data 262,263,265,269,271,277,278,285,286,287,291,293,295,299,301,302
270   data 303,309,310,311,313,317,318,319,323,326,327,330,334,335,341,349
280   data 353,357,358,359,365,366,367,371,373,374,381,382,383,386,389,390
290   data 391,395,397,398,399,406,407,410,413,415,421,422,426,429,430,431
300   data 434,437,438,439,442,445,446,447,453,454,455,457,461,462,463,465
310   data 469,470,471,478,479,485,487,493,494,501,502,503,505,509,510,511
320   data 514,517,518,519,526,527,533,534,535,541,542,543,546,551,557,559
330   data 561,565,566,573,574,581,582,583,589,590,591,597,598,599,602,606
340   data 607,609,613,614,615,622,623,629,631,638,645,646,647,651,653,654
350   data 655,658,661,662,663,669,670,671,674,677,678,679,685,687,689,694
360   data 695,701,703,709,710,717,718,719,721,723,727,731,733,734,741,742
370   data 743,749,751,757,758,759,761,766,767,773,777,781,782,789,790,791
380   data 793,797,798,799,805,806,807,813,814,815,821,822,823,829,830,831
390   data 838,839,853,854,861,862,863,866,869,870,871,877,878,879,885,886
400   data 887,889,890,893,894,895,901,902,903,905,910,911,915,917,919,926
410   data 933,934,935,941,942,943,949,951,957,958,959,965,966,967,973,974
420   data 982,983,985,987,989,991,995,997,998
430   '
440   ' g_prt.ub
450   print G%(I%);":";X;",";Y;",";Z;",";W;":";X2;",";G;":";
460   print X2;",";X*Z*W;",";Y
470   return

100,000以下のxについて調べた。新たに見つかった解は無い。実行結果は以下のとおり。

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

 53,
101, 103, 118, 127, 142, 157, 173, 181, 191, 197, 199,
223, 229, 237, 263, 269, 271, 277, 278, 293,
302, 303, 311, 317, 326, 327, 334, 349, 358, 365, 367, 373, 382, 389, 397, 398,
407, 413, 415, 421, 431, 439, 446, 453, 454, 461, 463, 478, 485, 487, 493,
501, 502, 503, 519, 533, 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
三島 久典