読者です 読者をやめる 読者になる 読者になる

PEをMathematicaで

Project Eulerに挑戦してみよう

Project Euler 38 / パンデジタル倍数

192に1, 2, 3を掛けてみよう。

  • 192×1 = 192
  • 192×2 = 384
  • 192×3 = 576

積を連結することで1から9のパンデジタル数192384576が得られる。192384576を192と(1,2,3)の連結積と呼ぶ。

同じようにして, 9を1,2,3,4,5と掛けて連結することでパンデジタル数918273645が得られる。これは9と(1,2,3,4,5)との連結積である。

整数と(1,2,...,n) (n>1)との連結積として得られる9桁のパンデジタル数の中で最大のものはいくつか?

Problem 38 - Project Euler


候補のしぼりこみが有効な問題でした。

(a桁の数x)*(1,2,...,n)=(9桁のパンデジタル数)

とおきます。最大値を求めたいのでxの首位の数字は9。xは2倍,3倍,……でa+1桁になります。上式両辺の桁数に注目しましょう。

a+(a+1)(n-1)=9

Mathematica によると解は (a, n)=(1, 5),(4,2) の2つです。(1, 5)の結果は問題文中に与えられているので, (4, 2) について調べれば十分です。


9ではじまる4桁の数xに対して,xと2xを連結した数はx*10^5+2x。これがパンデジタルかどうか調べました。


候補となる数は3つしかないんですね。