Project Euler Problem 3 code