solutions to the project euler problems