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

簡単な計算(とするが、意外と時間がかかったのは内緒だ)で

a:even -> a*(a-2)

a:odd -> a*(a-1)

が分かる。これが分かれば、後は簡単。

rMax a | even a = a*(a-2)
| odd  a = a*(a-1)
main = print. sum. map rMax $ [3..1000]

手計算でもできるはず、面倒だからやらないけど。