小町算となる単位分数 - パズル

 投稿者:山中和義  投稿日:2013年 2月22日(金)10時28分51秒
  問題 小町覆面算
単位分数が1/nとなる1から9までの数を1回ずつ使った分数を求めよ。
ただし、nは2から20までの数とする。
たとえば、6729/13458は1/2なので、求める答えのひとつである。

考察
1/n=m/(mn)を考える。
1から9までの数を1回ずつ使うので、分子のmは4桁の数、分母のmnは5桁の数である。
n=2の場合、
m=1234として、1234/(1234*2)=1234/2468より、
1234と2468とで、1から9までの数を1回ずつ使っているかどうか確認する。
次に、m=1235として、1235/(1235*2)=1235/2470
次に、m=1236として、1236/(1236*2)=1236/2472
 :
(終り)



DIM F(0 TO 9) !1から9までの数
FOR N=2 TO 20
   PRINT "N=";N

   FOR M=1234 TO 9876 !4桁の数
      MAT F=ZER
      LET F(0)=1 !使用中とする

      LET t=M
      FOR i=1 TO 4 !10進法4桁
         LET w=MOD(t,10)
         IF F(w)=1 THEN EXIT FOR !既に使用済み
         LET F(w)=1 !使用中とする
         LET t=INT(t/10)
      NEXT i
      IF i>4 THEN !各桁が異なる4桁の数なら
      !!!PRINT M !debug

         LET t=M*N
         IF t>=12345 AND t<=98765 THEN !5桁の数なら
            FOR i=1 TO 5
               LET w=MOD(t,10)
               IF F(w)=1 THEN EXIT FOR
               LET F(w)=1
               LET t=INT(t/10)
            NEXT i
            IF i>5 THEN !各桁が異なる5桁の数なら

               PRINT M; "/"; M*N !題意を満たす

            END IF
         END IF
      END IF
   NEXT M
   PRINT

NEXT N

END

 

戻る