Python problems and solutions from http://projecteuler.net