『今週の問題』第187回 解答


◆広島県 清川 育男 さんからの解答

【問題1】

 1   3
 |   |
 9―2―4
 |   |
 8   6 
1=1,2=2,3=3,
4=2*2, 5=5, 6=2*3,
7=7, 8=2*2*2, 9=3*3

2の素因数は7個
3の素因数は4個
5の素因数は1個
7の素因数は1個

したがって、5、7は使えない。
また2は中央に入らなければならない。
3つの数の積の中に2の素因数は3個、3の素因数は2個。
したがって、3つ数の積は72。

1   3
□ 2 □
□   □
-----------
1   3
9 2 4
8   6
上下、左右が交換可能であるから、8通り。

【おまけ1】

213497856=211*36*11*13 ,64
536481792=212*35*72*11 ,64

【おまけ2】

1379524608=213*37*7*11 ,65
1745960832=27*311*7*11 ,65


◆三重県 とくしん さんからの解答

【おまけ1・2】

9桁、10桁の場合において合計が70未満になるのはこれで全てです。

0213497856:64,2*11,3*6 ,11*1,13*1
0536481792:64,2*12,3*5 ,7 *2,11*1
0619573248:65,2*12,3*2 ,7 *5
0164923857:66,3*11,7*2 ,19*1
0214396875:66,3*4 ,5*5 ,7 *1,11*2
0372594816:68,2*7 ,3*7 ,11*3
0948721536:69,2*7 ,3*2 ,7 *7
1379524608:65,2*13,3*7 ,7 *1,11*1
1745960832:65,2*7 ,3*11,7 *1,11*1
1072963584:66,2*13,3*5 ,7 *2,11*1
左からX、合計、因数の種類と数です。
0〜9の順列を作る部分が一番苦労しました(笑)


◆愛知県 Y.M.Ojisan さんからの解答

【問題1】

対称性を考慮すると1種のみ

3   1
|   |
4―2―9
|   |
6   8
【導出法】
A E
BDF
C G
としたとき
A*B2*C*D*E*F2*G=X3
でなければなりません。

(1)従ってX3の素因数冪数が2以上にならない5と7は使えません。
のこりは丁度7個です。

(2)素因数3を生むのは 3(1個)、6(1個)、9(2個)です。
従ってX3の3の冪数は4〜7個であり、3の倍数は6のみです。
冪数6になるには3か9はBかFにある必要があります。

(3)素因数2を生むのは 2(1個)、4(2個)、6(1個)、8(3個)です。
従ってX3の2の冪数は7〜12個であり、3の倍数は9か12です。
冪数12になるには、BとFは偶数でなければなりません。
しかし(2)によりそれは不可能です。
よって冪数は9です。

(4)以上からX=72です。
3個の積で72になるのは 1−8−9 2−4−9 3−4−6の3種のみです。

(5)よってB,Fに入るのは4と9です。
これよりD=2です。

【おまけ1解答】

X=213497856 合計=64 等 下表参照

【おまけ2解答】

X=1379524608 合計=65 等 下表参照

【おまけのPC探索方法】

合計75以下を目標としてPC探索した方法を示します。

X=2P2P3P5・・・として

合計 =2*P2+3*P2+5*P5・・・ ≦75

log(X) =log(2)*P2+log(3)*P2+log(5)*P5・・・ ≦log(9876543210)  & ≧log(123456789)
を満足する Piを定め、Xを計算してそれが 0〜9だけでできているかチェックします。

ある因数の冪数は残りを全部2の冪でまかなうとして最大値を切ることができ、31まで考えれば良いことが判ります。
さらにXは9の倍数ですから3の冪は2以上です。
細かいところでは、2と5の冪数が共に2以上だとXの下2桁が00になるので、これは除外できます。

得られた結果で最上位が「0」のものがおまけ1の解で、その他がおまけ2の解です。

 


◆東京都 明 さんからの解答

【問題1】

裏返し、回転を同一と見ると、下記2通りのみ。

8   3
|   |
9―2―4
|   |
1   6

1   3
|   |
9―2―4
|   |
8   6
以下のように考えました。

3数の積の3系統すべてに共通な項は存在しない。
従って、素因数分解の一意性により、1〜9の中の数で、2つ以上 の数に共通する素数を持たない数(5と7)は候補から外れます。

他の数を素因数分解します。

1 = 1
2 = 2
3 = 3
4 = 2・2
6 = 2・3
8 = 2・2・2
9 = 3・3

3の素因数に着目して、3系統で、3の素因数を同数にする配置は裏返し、回転を同一と見ると、下記一通りのみ。

□   3
|   |
9―□―□
|   |
□   6
次に2の素因数に着目して、下記の3系統で、2の素因数を同数に する配置を考えればよい。
□   X
|   |
X―□―□
|   |
□   2
以上から前記解を求めることができます。

【おまけ1】

2以上の整数では、2数の積 ≧ 2数の和。

従って、因数の和を最小にするためには素因数分解をすることになります。

和が100以下のヒントがあるので、後はしらみつぶしで素因数が100以下で構成される数列を検索し、和が最小のものを求めました。

数列 : 213497856 素因数合計 : 64
素因数 : 211 × 36 × 111× 131

数列 : 536481792 素因数合計 : 64
素因数 : 212 × 35× 72× 111

【おまけ2】

【おまけ1】と同様に求めました。

数列 : 1379524608 素因数合計 : 65
素因数 : 213× 3 7 × 71× 111

数列 : 1745960832 素因数合計 : 65
素因数 : 27× 311× 71× 111

参考で【おまけ2】のプログラムを添付します。
(10進BASIC)

---------------------------------------
DECLARE EXTERNAL SUB zyun

REM 素数データ
DATA  2 , 3 , 5 , 7 , 11 
DATA  13 , 17 , 19 , 23 , 29 
DATA  31 , 37 , 41 , 43 , 47 
DATA  53 , 59 , 61 , 67 , 71 
DATA  73 , 79 , 83 , 89 , 97

REM 数値列データ
DATA 1,0,2,3,4,5,6,7,8,9

DIM PN(25)
DIM N(10)
DIM CN(25)
MAT READ PN
MAT READ N

SUB number
   LET NB=0
   FOR J=1 TO 10
      LET NB=NB+N(J)*10^(10-J)
   NEXT J
END SUB

LET MIN=100
DO
   CALL number
   MAT CN=ZER
   LET NC=NB
   LET ID=1
   LET SUM=0
   DO
      IF NC=1 THEN EXIT DO
      IF MOD(NC,PN(ID))=0 THEN
         LET NC=NC/PN(ID)
         LET SUM=SUM+PN(ID)
         LET CN(ID)=CN(ID)+1
      ELSE
         LET ID=ID+1
      END IF
      IF ID>25 THEN
         LET SUM=101
         EXIT DO
      END IF
   LOOP
   IF MIN>=SUM THEN
      LET MIN=SUM
      PRINT "数列 : ";NB;"   素因数合計 : ";SUM
      PRINT "素因数 : ";      
      LET BG=1
      FOR J=1 TO 25
         IF CN(J)<>0 THEN
            IF BG=0 THEN PRINT "×";
            LET BG=0
            PRINT PN(J);"^";CN(J);
         END IF
      NEXT J
      PRINT
      PRINT
   END IF 
   CALL zyun(10,EX,N)
LOOP UNTIL EX=0
PRINT "END"

END

!順列の変更
EXTERNAL SUB zyun(K,EX,N())
DECLARE EXTERNAL SUB seiretu
LET EX=0
LET J=1
DO
   IF J>=K THEN EXIT DO
   IF N(K-J)<N(K-J+1) THEN
      CALL seiretu(J,K,N)
      LET L=1
      DO
         IF N(K-J)>=N(K-J+L) THEN 
            LET L=L+1
         ELSE
            LET B=N(K-J)
            LET N(K-J)=N(K-J+L)
            LET N(K-J+L)=B
            LET EX=1
            EXIT DO
         END IF
      LOOP
      EXIT DO
   ELSE 
      LET J=J+1          
   END IF
LOOP
END SUB

!配列の整列
EXTERNAL  SUB seiretu(J,K,N())
LET D=K-J+1
LET E=K
DO WHILE D<E
   LET B=N(D)
   LET N(D)=N(E)
   LET N(E)=B
   LET D=D+1
   LET E=E-1
LOOP
END SUB
--------------------------------------

 ◆ 問題へもどる

 ◆ 今週の問題

数学の部屋へもどる