https://projecteuler.net/problems sample solutions.