Problem 55, 2 versions (functional and iterative)
Problem 56