★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
探索範囲を1000まで広げたら、125組見つかりました。
一部はちょっと冗長な組ですが、まあいいでしょう。
お遊びに付き合ってくださって、ありがとうございました。