project euler - problem 2