forked from: Project Euler 268

