solutions to project euler exercises