Project Euler Problem 56