へたっぴpythonista

ド素人pythonistaとして、日々の学習成果や気づいたことについて書きます。

projectEuler32をpythonで

Problem32「パンデジタル積」

すべての桁に 1 から n が一度だけ使われている数をn桁の数がパンデジタル (pandigital) であるということにしよう: 例えば5桁の数 15234 は1から5のパンデジタルである.

7254 は面白い性質を持っている. 39 × 186 = 7254 と書け, 掛けられる数, 掛ける数, 積が1から9のパンデジタルとなる.

掛けられる数/掛ける数/積が1から9のパンデジタルとなるような積の総和を求めよ.

HINT: いくつかの積は, 1通り以上の掛けられる数/掛ける数/積の組み合わせを持つが1回だけ数え上げよ.

 

細かいミスはあったもののそこまで苦戦はしませんでした。

解答

f:id:ruriohead:20130630130707p:plain

 

注意するべきは、求める「掛けられる数、掛ける数、積」のパターンには「一桁、四桁、四桁」と「二桁、三桁、四桁」の2パターンが存在することです。

実行すると、

f:id:ruriohead:20130630130351p:plain

となりました。これでOK。