solutions to https://projecteuler.net problems