Constacyclic codes form an interesting family of error-correcting codes due to their rich algebraic structure, and are generalizations of cyclic and negacyclic codes. In this paper, we classify repeated-root constacyclic codes of length l(t) p(s) over the finite field F-pm containing p(m) elements, where l = 1(mod 2), p are distinct primes and t, s, m are positive integers. Based upon this classification, we explicitly determine the algebraic structure of all repeated-root constacyclic codes of length l(t) p(s) over F-pm and their dual codes in terms of generator polynomials. We also observe that self-dual cyclic (negacyclic) codes of length l(t) p(s) over F-pm exist only when p = 2 and list all self-dual cyclic (negacyclic) codes of length l(t) 2(s) over F-2m. We also determine all self-orthogonal cyclic and negacyclic codes of length l(t) p(s) over F-pm. To illustrate our results, we determine all constacyclic codes of length 175 over F-5 and all constacyclic codes of lengths 147 and 3087 over F-7.