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

PEをMathematicaで

Project Eulerに挑戦してみよう

Project Euler 40 / チャンパーノウン定数

正の整数を順に連結して得られる以下の10進の無理数を考える。

0.123456789101112131415161718192021...

小数第12位は1である。dnで小数第n位の数を表す。
d1 × d10 × d100 × d1000 × d10000 × d100000 × d1000000 を求めよ。

Problem 40 - Project Euler

小数であることは本質ではないので,1, 2, ……を連結していった整数を考えます。

何桁まで考えればいいのか

d1000000 を得るには 10^6 桁の整数をつくる必要があります。k桁の数が 9*10^(k-1) 個あることを使って,必要な桁数を計算します。

6桁の数まで考えればいいようですね。一応確認してみました。


連結する

123→1, 2, 3のように桁ごとに区切って連結します。

リストの連結は Join するのが正当らしいのですが,ここは単純に Flatten しました。
以上をまとめて終了です。