solutions to various project euler problems