project euler problem and solution