algorithms to solve computation problems