solutions to Project Euler problems