solutions for project euler using haskell