solutions to problems on projet euler