A condition is proven on the roots of the generator polynomial of a q-ary cyclic code of block length n which guarantees full cyclic order for all nonzero codewords. For such cyclic codes having n = q m − 1, a theorem is proven which allows to partition the set of all nonzero codewords into cyclic equivalence classes of order n.Introduction: In this Letter, a condition is proven on the roots of the generator polynomial of a linear q-ary cyclic code C of block length n which guarantees full cyclic order for all nonzero codewords, where q is the power of a prime and n is a positive integer which divides q m − 1. For such cyclic codes having n = q m − 1, a theorem is proven which allows a systematic partition of the set of all nonzero codewords of C into cyclic equivalence classes of order n [1]. We refer to this latter result as the separation theorem. The goal of the theory in this Letter is the construction of 'cyclically permutable codes' [2].Binary cyclically permutable codes have many applications as, for example, protocol sequences for the collision channel without feedback [1,3], as well as improving robustness against clipping attacks of watermarking systems [4]. Additionally, non-binary cyclically permutable codes have applications in direct sequence code division multiple access (DS-CDMA) systems with asynchronous base stations [5].In [1], conditions are given that should be obeyed by a construction of a cyclically permutable code. The first condition is that the technique for specifying equivalence classes must be easy to build. The second condition specifies the efficiency of the construction, namely, for a given a q-ary cyclic code with block length n, having q k codewords, the number of distinct cyclic equivalence classes produced should be close to the maximum value of q k /n. A third desirable condition is that the minimum Hamming distance of the cyclically permutable code should approach the maximum possible value for the given code parameters. In the sequel, we show that the proposed approach for generating cyclically permutable codes is easily implementable, and for linear q-ary cyclic codes it is optimal in the sense that the number of cyclic equivalence classes selected is precisely (q k − 1)/n, obtained by removing the allzero codewords because it has cyclic order 1 (see Definition 1).