practice from projecteuler.net