Solution for projecteuler.org