« ヤグルマギクの実 | トップページ | メスジロハエトリ・オス »

2015年6月26日 (金)

2つの立方数の和が平方数になる具体例

★2つの立方数の和が平方数になる具体例を求めるプログラムを書いてみました。{仮称十進BASICです。}

!-----------------------------
!立方数の和が平方数になる

FOR n = 1 TO 100
   FOR m = 1 TO n
      LET wrk = SQR(n*n*n + m*m*m)
      IF (wrk - INT(wrk)) = 0 THEN
         PRINT USING "#########": n;
         PRINT USING "#########": m;
         PRINT USING "#########": wrk;
         PRINT USING "#########": wrk*wrk
      END IF
   NEXT m
NEXT n

END
!-----------------------------
このBASICには、小数の整数部を求める関数(INT)はありますが、小数部を求める関数がありません。(「FRAC」という名前の関数を持っている言語もあります。)
で、平方根からその平方根の整数部を引いて、ゼロなら小数部がないという判定をしています。
実行結果は↓
1列目の数と2列目の数の3乗を足すと3列目の数の自乗になります。その自乗数を4列目に書いておきました。
        2        1        3        9
        2        2        4       16
        8        4       24      576
        8        8       32     1024
       18        9       81     6561
       18       18      108    11664
       21        7       98     9604
       26       22      168    28224
       32       16      192    36864
       32       32      256    65536
       37       11      228    51984
       46        2      312    97344
       50       25      375   140625
       50       50      500   250000
       65       10      525   275625
       65       56      671   450241
       70       14      588   345744
       72       36      648   419904
       72       72      864   746496
       84       28      784   614656
       88       33      847   717409
       91       65     1014  1028196
       98       49     1029  1058841
       98       98     1372  1882384

何かの役に立つということはほぼゼッタイにありえない遊びです。
単なる好奇心の発露です。
3つの立方数の和が平方数になる、なんてのは、メンドクサ~。やめときます。

★オマケ
エクセルのVBAで全く同じプログラムを書いてみました。

Option Explicit

Sub CubicNum()
Dim n As Long, m As Long
Dim count As Long
Dim wrk As Double

count = 0
For n = 1 To 1000
    For m = 1 To n
        wrk = Sqr(n ^ 3 + m ^ 3)
        If (wrk - Int(wrk) = 0) Then
            count = count + 1
            Cells(count, 1).Value = count
            Cells(count, 2).Value = n
            Cells(count, 3).Value = m
            Cells(count, 4).Value = wrk
            Cells(count, 5).Value = n ^ 3 + m ^ 3
        End If
    Next m
Next n
End Sub

Cubicnum

探索範囲を1000まで広げたら、125組見つかりました。
一部はちょっと冗長な組ですが、まあいいでしょう。

お遊びに付き合ってくださって、ありがとうございました。

« ヤグルマギクの実 | トップページ | メスジロハエトリ・オス »

理科おじさん」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« ヤグルマギクの実 | トップページ | メスジロハエトリ・オス »

2017年9月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
サイト内検索
ココログ最強検索 by 暴想
無料ブログはココログ