Project Euler problems, solved in Haskell