http://projecteuler.net problems solutions.