Solutions to Project Euler problems -- please don't look at them until you have solved the problems yourself