[Math] Finding primitive $n$-th root of unity modulo $N$ having a primitive root

finite-fieldsroots-of-unity

I'm pretty new to modular arithmetic and not having a good knowledge of algebra, so sorry for perhaps a basic question.

Suppose that I have a Galois field modulo $N$ and a primitive root $\omega$. I understand that $\omega$ is also a primitive $\phi(N)$-th root of unity modulo $N$.

Knowing the value of $\omega$, is there a fast way, for an arbitrary $n<N$, compute one of the primitive $n$-th roots of unity modulo $N$?

I searched the Wikipedia and didn't find anything, but I could have been inattentive.

Best Answer

If you have a generator $\omega$ of any cyclic group (regardless of whether it comes from a field or not), it is easy to construct elements of any order you want. Say the cyclic group (and hence $\omega$ as well) has order $k$. Then for any $d$ dividing $k$ (which are all the possible orders), the element $\omega^{k/d}$ will have order $d$.

Assuming your question is asking about the multiplicative group $({\mathbb Z}/N{\mathbb Z})^\times$, then an element of order $d$ is the same thing as a primitive $d$th root of unity modulo $N$.

Related Question