project euler problem 16 work