
上記の等式を満たす
,
,
の組みをすべて出力する十進BASIC のプログラムは次のようなものです。FOR a = 1 TO 300
FOR b = a + 1 TO 300
LET c = SQR ( a^2 + b^2 )
IF c = INT( c ) THEN
PRINT a;"+";b;"⇒";c
END IF
NEXT b
NEXT a
END
これを実行すると次のように出力されます。
3 + 4 ⇒ 5
5 + 12 ⇒ 13
6 + 8 ⇒ 10
7 + 24 ⇒ 25
8 + 15 ⇒ 17
・
・
隣同士が上記の式を満たす
と
の関係になっていて、 次第に大きくなっていく数列のうち、 最も項数の多いものを示すためには、 次のような十進BASIC のプログラムを作るのが早いと思います。DIM Q(20)
PRINT " 次第に大きくなっていく項数10個以上の300以下の自然数からなる数列で"
PRINT " 隣同士がピタゴラス数になっている数列には、次のようなものがあります。"
FOR i = 1 TO 300
LET n = 0
LET A = i
DO
LET B = A + 1
LET T = A^2 + B^2
DO
LET P = INT ( SQR( T ) )
IF P * P = T THEN EXIT DO
LET T = T + 2*B + 1
! 次のピタゴラス数の候補 A^2 + (B+1)^2 = (A^2 + B^2) + 2B +1
IF B > 300 THEN GOTO 10
LET B = B + 1
LOOP
LET n = n + 1
LET Q ( n ) = B
LET A = B
LOOP
10 IF n < 10 THEN GOTO 20
PRINT i ; " " ;
FOR j = 1 TO n
PRINT Q ( j ) ; " " ;
NEXT j
PRINT " 項数:" ; n + 1
20 NEXT i
END
< コピペ用の小窓 >
十進