Project Euler Haskell solutions