Projecteuler.net solution #9