ピタゴラス数
十進BASIC_算数 へ戻る
大学生のための数学 へ戻る
2013.07.03


       

  上記の等式を満たす の組みをすべて出力する十進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
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
   PRINT i ; " " ;
     FOR j = 1 TO n
       PRINT Q ( j ) ; " " ;
     NEXT j
   PRINT "  項数:" ; n + 1
   PRINT
20 NEXT i

PRINT
END


  < コピペ用の小窓 >