Project Euler problem 28