http://projecteuler.net/index.php?section=problems&id=86

英語難しいです。

最短を忘れていたり、組ではなく並びかと思ったりと。

import Data.List
cuboid m = sum[div2 n m |n<-[2..2*m-1],isIntSqrt$n*n+m*m]
div2 n m | n > m = div (2*m-n+2) 2
| n < m = div n 2
isIntSqrt x =(==x).(^2).floor.sqrt.fromIntegral$x
main = print.findIndex (>10^6).scanl (+) .map cuboid $[1..]