Project Euler problem 3 (https://projecteuler.net/problem=3)