solutions to the problems on projecteuler.net