Factorization Techniques in Discrete Time Adaptive Control