problem 20 solution
problem 17 solution