project euler problem 3