solutions to projecteuler.net