パズル万華鏡

面白いパズルの紹介と解説をします。

平方数問題・考察(2)

 平方数問題・考察(2)を紹介します。

考察(2)

 0から9までの10個の数字を1回使って得られる数値で、ある正整数のk(3≦k≦10)乗になるものを考察した。

 プログラムで実験したところ、該当する数は見つからなかった。

●プログラム(PB221.bas)

' << PB221.bas >>
' Tiny Basic
'
'(考察2)0から9までの10個の数字を1回使って得られる数値で、
'     ある正整数のk(3≦k≦10)乗になるものを考察せよ。
'
Dim D(9): ' D(I)=0は、数字Iが出現していないことを意味し、
          ' D(I)=1は、数字Iが出現したことを意味する。
' K乗した結果に、0から9までの10個の数字が1回現れているかどうかを
' 調べる。
'
For K=3 To 10
  '
  COUNT=0: ' 解の個数。                                       
  '
  ' K乗したとき、初めて123456789を超える整数をN1とする。
  N1=1
  Do
    W=1: For I=1 To K: W=W*N1: Next I
    If W > 1023456789 Then Exit Do
    N1=N1+1
  Loop
  '
  ' K乗したとき、初めて987654321を超える整数-1をN2とする。
  N2=N1+1
  Do
    W=1: For I=1 To K: W=W*N2: Next I
    If W > 9876543210 Then Exit Do
    N2=N2+1
  Loop
  N2=N2-1
  '
  Print"K=";K;" N1=";N1;" N2=";N2
  '
  ' N1からN2までの整数について調べる。
  For N=N1 To N2                                       
    ' 初期設定。                                              
    For I=0 To 9: D(I)=0: Next I                              
    '                                                         
    ' TはNのK乗。
    T=1: For J=1 To K: T=T*N: Next J
    S=T
    ' 変数Tの値を各桁に分解していく。                         
    While T > 0                                               
      W=T Mod 10:                                             
      If D(W) > 0 Then Exit Do                   
      D(W)=1: T=Int(T/10)                                     
    Wend                                                      
    '                                                         
    ' 該当する結果を表示。                                    
    If T = 0 Then                                             
      COUNT=COUNT+1                                           
      Print Using"(###) ";COUNT;                              
      Print Using "#####の##乗 = ##########";N;K;S   
    End If                                                    
  Next N
  '
  If COUNT = 0 Then
    Print"該当する数なし"
  End If
Next K                                                      
End

実行結果
f:id:isemba:20151128191231j:plain
f:id:isemba:20151128191244j:plain