solutions to various problems from projecteuler.net