project euler 3