solution to Project Euler problem 16.