トップページに戻る    次のC#のサンプルへ    前のC#のサンプルへ

Problem313 スライドパズル

問題

スライドパズルでは,
カウンタを空白のスペースに向けて横または縦へスライドさせることができる.
ゲームの目的は, 赤のカウンタを盤の左上角から右下角へ動かすことである.

スペースはつねに右下角にある状態から始まる.
例えば次の一連の図は, 2×2の盤にて5手でゲームを完了させる様子を示している.


S(m,n) を, m×n の盤でゲームを完了させる最小の手数を表すとする.
例えば, S(5,4) = 25 であることが確かめられる.


100 未満の素数 P について, S(m,n)=Pの2乗 となる盤は 5482 個ある.
100万 未満の素数 P について, S(m,n)=Pの2乗 となる盤は何個あるか.


ソース



実行結果



解説