Created for http://projecteuler.net/