ProjectEuler problem 27