|
たとえば、
1^2 + 5^2 + 6^2 = 2^2 + 3^2 + 7^2
12^2 + 56^2 + 64^2 = 24^2 + 32^2 + 76^2
123^2 + 561^2 + 642^2 = 242^2 + 323^2 + 761^2
1237^2 + 5619^2 + 6428^2 = 2428^2 + 3237^2 + 7619^2
12378^2 + 56194^2 + 64286^2 = 24286^2 + 32378^2 + 76194^2
123789^2 + 561945^2 + 642864^2 = 242868^2 + 323787^2 + 761943^2
23789^2 + 61945^2 + 42864^2 = 42868^2 + 23787^2 + 61943^2
3789^2 + 1945^2 + 2864^2 = 2868^2 + 3787^2 + 1943^2
789^2 + 945^2 + 864^2 = 868^2 + 787^2 + 943^2
89^2 + 45^2 + 64^2 = 68^2 + 87^2 + 43^2
9^2 + 5^2 + 4^2 = 8^2 + 7^2 + 3^2
19^2 + 55^2 + 64^2 = 28^2 + 37^2 + 73^2
1289^2 + 5645^2 + 6464^2 = 2468^2 + 3287^2 + 7643^2
123789^2 + 561945^2 + 642864^2 = 242868^2 + 323787^2 + 761943^2
2378^2 + 6194^2 + 4286^2 = 4286^2 + 2378^2 + 6194^2
37^2 + 19^2 + 28^2 = 28^2 + 37^2 + 19^2
となる数が存在する。(ちなみに、1乗でも成り立つ)
一般に、
(X-(A+B))^2+(X+A)^2+(X+B)^2=(X-B)^2+(X-A)^2+(X+(A+B))^2
とすればよい。
まず、a^2+b^2+c^2=d^2+e^2+f^2を満たす1桁の場合は、
a b c d e f
-------------------
1 4 9 3 5 8 *1乗のときは成り立たない
1 5 6 2 3 7
1 6 8 2 4 9
2 3 8 4 5 6 *
2 6 7 3 4 8
3 7 8 4 5 9
である。
その中から、
1 5 6 2 3 7
3 7 8 4 5 9
を選び、6桁の数に着目して、1≦A<Bのすると、
X-(A+B) X+A X+B X-B X-A X+(A+B) ※2乗の記号は省く
------------------------------------------------------
1 + 5 + 6 = 2 + 3 + 7
1? + 5? + 6? = 2? + 3? + 7?
1?? + 5?? + 6?? = 2?? + 3?? + 7??
1??? + 5??? + 6??? = 2??? + 3??? + 7???
1???? + 5???? + 6???? = 2???? + 3???? + 7????
1????9 + 5????5 + 6????4 = 2????8 + 3????7 + 7????3
????9 + ????5 + ????4 = ????8 + ????7 + ????3
???9 + ???5 + ???4 = ???8 + ???7 + ???3
??9 + ??5 + ??4 = ??8 + ??7 + ??3
?9 + ?5 + ?4 = ?8 + ?7 + ?3
9 + 5 + 4 = 8 + 7 + 3
を考える。
ここで、検索時間が短縮になるように、
左辺の一番小さい数 X-(A+B) (6つの数の中で一番小さい)を、123789とする。
左辺の一番大きい数 X+B を、642864とする。
したがって、
1 + 5 + 6 = 2 + 3 + 7
12 + 5? + 64 = 2? + 3? + 7?
123 + 5?? + 642 = 2?? + 3?? + 7??
1237 + 5??? + 6428 = 2??? + 3??? + 7???
12378 + 5???? + 64286 = 2???? + 3???? + 7????
123789 + 5????5 + 642864 = 2????8 + 3????7 + 7????3
23789 + ????5 + 42864 = ????8 + ????7 + ????3
3789 + ???5 + 2864 = ???8 + ???7 + ???3
789 + ??5 + 864 = ??8 + ??7 + ??3
89 + ?5 + 64 = ?8 + ?7 + ?3
9 + 5 + 4 = 8 + 7 + 3
となる。
左辺の 5????5 の????を、1111から9999まで変化させて、Xを求める。
このとき、次のことに注意する。
・桁をひとつずつ消して、桁がひとつずつ減るので、0を含まない。
・左辺の和が3の倍数になる。
このXから、右辺の数が確定するので、その6つの数で。
桁をひとつずつ消して、条件を満たすものを洗い出せばよい。
PUBLIC NUMERIC K !桁数
LET K=6
LET P=123789 !X-(A+B)
LET R=642864 !X+B
LET S=0
FOR QQ=(10^(K-2)-1)/9 TO 10^(K-2)-1 !X+A
IF POS(STR$(QQ),"0")>0 THEN !0を除く
ELSE
LET Q=(5*10^(K-2)+QQ)*10+5
LET X=(P+Q+R)/3
IF X=INT(X) THEN !和が3の倍数
LET D=2*X-R !右辺 X-B
IF POS(STR$(D),"0")>0 THEN
ELSE
IF INT(D/10^(K-1))=2 AND MOD(D,10)=8 THEN
LET E=2*X-Q !右辺 X-A
IF POS(STR$(E),"0")>0 THEN
ELSE
IF INT(E/10^(K-1))=3 AND MOD(E,10)=7 THEN
LET F=2*X-P !右辺 X+(A+B)
IF POS(STR$(F),"0")>0 THEN
ELSE
IF INT(F/10^(K-1))=7 AND MOD(F,10)=3 THEN
!!!PRINT P;Q;R; D;E;F !debug
CALL chk(P,Q,R,D,E,F, rc)
IF rc<>0 THEN !条件を満たす
LET S=S+1
PRINT P;Q;R; D;E;F
END IF
END IF !f
END IF
END IF !e
END IF
END IF !d
END IF
END IF !3の倍数
END IF !q
NEXT QQ
PRINT S;"通り"
END
EXTERNAL SUB chk(P,Q,R,D,E,F, rc) !条件を満たすかどうか確認する
LET rc=0
FOR i=1 TO K !最上位の桁を消す
LET T=10^i
IF MOD(P,T)^2+MOD(Q,T)^2+MOD(R,T)^2<>MOD(D,T)^2+MOD(E,T)^2+MOD(F,T)^2 THEN EXIT FOR
NEXT i
IF i>K THEN
FOR i=1 TO K-1 !一の位の桁を消す
LET T=10^i
IF INT(P/T)^2+INT(Q/T)^2+INT(R/T)^2<>INT(D/T)^2+INT(E/T)^2+INT(F/T)^2 THEN EXIT FOR
NEXT i
IF i>K-1 THEN
LET W=INT((K-1)/2)
FOR i=1 TO W !最上位と一の位の桁を消す
LET T=10^i
LET TT=10^(K-i)
IF INT(MOD(P,TT)/T)^2+INT(MOD(Q,TT)/T)^2+INT(MOD(R,TT)/T)^2 <> &
& INT(MOD(D,TT)/T)^2+INT(MOD(E,TT)/T)^2+INT(MOD(F,TT)/T)^2 THEN EXIT FOR
NEXT i
IF i>W THEN
LET W=INT((K-1)/2)
FOR i=1 TO W !最上位と一の位の桁を残す
LET T=10^(INT(K/2)-i)
LET TT=10^(INT(K/2)+i)
IF (INT(P/TT)*T+MOD(P,T))^2+(INT(Q/TT)*T+MOD(Q,T))^2+(INT(R/TT)*T+MOD(R,T))^2 <> &
& (INT(D/TT)*T+MOD(D,T))^2+(INT(E/TT)*T+MOD(E,T))^2+(INT(F/TT)*T+MOD(F,T))^2 THEN EXIT FOR
NEXT i
IF i>W THEN
LET rc=1 !OK
END IF
END IF
END IF
END IF
END SUB
実行結果
123789 531315 642864 222448 333997 741523
123789 531345 642864 222468 333987 741543
123789 531375 642864 222488 333977 741563
123789 531615 642864 222648 333897 741723
123789 531645 642864 222668 333887 741743
123789 531675 642864 222688 333877 741763
123789 531915 642864 222848 333797 741923
123789 531945 642864 222868 333787 741943
123789 531975 642864 222888 333777 741963
123789 534315 642864 224448 332997 743523
123789 534345 642864 224468 332987 743543
123789 534375 642864 224488 332977 743563
123789 534615 642864 224648 332897 743723
123789 534645 642864 224668 332887 743743
123789 534675 642864 224688 332877 743763
123789 534915 642864 224848 332797 743923
123789 534945 642864 224868 332787 743943
123789 534975 642864 224888 332777 743963
123789 537315 642864 226448 331997 745523
123789 537345 642864 226468 331987 745543
123789 537375 642864 226488 331977 745563
123789 537615 642864 226648 331897 745723
123789 537645 642864 226668 331887 745743
123789 537675 642864 226688 331877 745763
123789 537915 642864 226848 331797 745923
123789 537945 642864 226868 331787 745943
123789 537975 642864 226888 331777 745963
123789 561315 642864 242448 323997 761523
123789 561345 642864 242468 323987 761543
123789 561375 642864 242488 323977 761563
123789 561615 642864 242648 323897 761723
123789 561645 642864 242668 323887 761743
123789 561675 642864 242688 323877 761763
123789 561915 642864 242848 323797 761923
123789 561945 642864 242868 323787 761943 ←←←
123789 561975 642864 242888 323777 761963
123789 564315 642864 244448 322997 763523
123789 564345 642864 244468 322987 763543
123789 564375 642864 244488 322977 763563
123789 564615 642864 244648 322897 763723
123789 564645 642864 244668 322887 763743
123789 564675 642864 244688 322877 763763
123789 564915 642864 244848 322797 763923
123789 564945 642864 244868 322787 763943
123789 564975 642864 244888 322777 763963
123789 567315 642864 246448 321997 765523
123789 567345 642864 246468 321987 765543 ←←← 並びがきれい
123789 567375 642864 246488 321977 765563
123789 567615 642864 246648 321897 765723
123789 567645 642864 246668 321887 765743
123789 567675 642864 246688 321877 765763
123789 567915 642864 246848 321797 765923
123789 567945 642864 246868 321787 765943
123789 567975 642864 246888 321777 765963
123789 591315 642864 262448 313997 781523
123789 591345 642864 262468 313987 781543
123789 591375 642864 262488 313977 781563
123789 591615 642864 262648 313897 781723
123789 591645 642864 262668 313887 781743
123789 591675 642864 262688 313877 781763
123789 591915 642864 262848 313797 781923
123789 591945 642864 262868 313787 781943
123789 591975 642864 262888 313777 781963
123789 594315 642864 264448 312997 783523
123789 594345 642864 264468 312987 783543
123789 594375 642864 264488 312977 783563
123789 594615 642864 264648 312897 783723
123789 594645 642864 264668 312887 783743
123789 594675 642864 264688 312877 783763
123789 594915 642864 264848 312797 783923
123789 594945 642864 264868 312787 783943
123789 594975 642864 264888 312777 783963
123789 597315 642864 266448 311997 785523
123789 597345 642864 266468 311987 785543
123789 597375 642864 266488 311977 785563
123789 597615 642864 266648 311897 785723
123789 597645 642864 266668 311887 785743
123789 597675 642864 266688 311877 785763
123789 597915 642864 266848 311797 785923
123789 597945 642864 266868 311787 785943
123789 597975 642864 266888 311777 785963
81 通り
|
|