Problem 23 finished. may need tighter bounds for a small speedup. also some comments on problem 21