Problem 62

はじめは、cubeの置換を全生成して、cubeか確かめるという。かなり、おろかなことをやっていた。

少し考えれば、計算量がありえないことになるのは目に見えている。

そこで、発想の転換。cubeの列を生成してそれを利用しよう。と。

cubeの列の数字をソートして、どの数字のナラビが5個出てくるか探した。

import Data.List
import Data.Maybe
cubes = [n^3|n<-[1..10000]]
findDigit = find((5==).length).group.sort.map (sort.show)$cubes
p062 = filter((==(head.fromJust)findDigit).sort.show) cubes

最小性のチェックは行っていないが、まぁいいでしょ。

More Reading
Newer// Problem 61
Older// Problem 63