solutions to problems on project euler