Root of unity modulo n

From HandWiki
.|date=February 2023}}

In number theory, a kth root of unity modulo n for positive integers k, n ≥ 2, is a root of unity in the ring of integers modulo n; that is, a solution x to the equation (or congruence) xk≡1(modn). If k is the smallest such exponent for x, then x is called a primitive kth root of unity modulo n.[1] See modular arithmetic for notation and terminology.

The roots of unity modulo n are exactly the integers that are coprime with n. In fact, these integers are roots of unity modulo n by Euler's theorem, and the other integers cannot be roots of unity modulo n, because they are zero divisors modulo n.

A primitive root modulo n, is a generator of the group of units of the ring of integers modulo n. There exist primitive roots modulo n if and only if λ(n)=φ(n), where λ and φ are respectively the Carmichael function and Euler's totient function.[clarification needed]

A root of unity modulo n is a primitive kth root of unity modulo n for some divisor k of λ(n), and, conversely, there are primitive kth roots of unity modulo n if and only if k is a divisor of λ(n).

Roots of unity

Properties

  • If x is a kth root of unity modulo n, then x is a unit (invertible) whose inverse is xk−1. That is, x and n are coprime.
  • If x is a unit, then it is a (primitive) kth root of unity modulo n, where k is the multiplicative order of x modulo n.
  • If x is a kth root of unity and x−1 is not a zero divisor, then ∑j=0k−1xj≡0(modn), because
(x−1)⋅∑j=0k−1xj≡xk−1≡0(modn).

Number of kth roots

For the lack of a widely accepted symbol, we denote the number of kth roots of unity modulo n by f(n,k). It satisfies a number of properties:

  • f(n,1)=1 for n≥2
  • f(n,λ(n))=φ(n) where λ denotes the Carmichael function and φ denotes Euler's totient function
  • n↦f(n,k) is a multiplicative function
  • k∣ℓ⟹f(n,k)∣f(n,ℓ) where the bar denotes divisibility
  • f(n,lcm⁡(a,b))=lcm⁡(f(n,a),f(n,b)) where lcm denotes the least common multiple
  • For prime p, ∀i∈ℕ ∃j∈ℕ f(n,pi)=pj. The precise mapping from i to j is not known. If it were known, then together with the previous law it would yield a way to evaluate f quickly.

Examples

Let n=7 and k=3. In this case, there are three cube roots of unity (1, 2, and 4). When n=11 however, there is only one cube root of unity, the unit 1 itself. This behavior is quite different from the field of complex numbers where every nonzero number has k kth roots.

Primitive roots of unity

Properties

  • The maximum possible radix exponent for primitive roots modulo n is λ(n), where λ denotes the Carmichael function.
  • A radix exponent for a primitive root of unity is a divisor of λ(n).
  • Every divisor k of λ(n) yields a primitive kth root of unity. One can obtain such a root by choosing a λ(n)th primitive root of unity (that must exist by definition of λ), named x and compute the power xλ(n)/k.
  • If x is a primitive kth root of unity and also a (not necessarily primitive) ℓth root of unity, then k is a divisor of ℓ. This is true, because Bézout's identity yields an integer linear combination of k and ℓ equal to gcd⁡(k,ℓ). Since k is minimal, it must be k=gcd⁡(k,ℓ) and gcd⁡(k,ℓ) is a divisor of ℓ.

Number of primitive kth roots

For the lack of a widely accepted symbol, we denote the number of primitive kth roots of unity modulo n by g(n,k). It satisfies the following properties:

  • g(n,k)={>0if k∣λ(n),0otherwise.
  • Consequently the function k↦g(n,k) has d(λ(n)) values different from zero, where d computes the number of divisors.
  • g(n,1)=1
  • g(4,2)=1
  • g(2n,2)=3 for n≥3, since -1 is always a square root of 1.
  • g(2n,2k)=2k for k∈[2,n−1)
  • g(n,2)=1 for n≥3 and n in (sequence A033948 in the OEIS)
  • ∑k∈ℕg(n,k)=f(n,λ(n))=φ(n) with φ being Euler's totient function
  • The connection between f and g can be written in an elegant way using a Dirichlet convolution:
f=𝟏*g, i.e. f(n,k)=∑d∣kg(n,d)
One can compute values of g recursively from f using this formula, which is equivalent to the Möbius inversion formula.

Testing whether x is a primitive kth root of unity modulo n

By fast exponentiation, one can check that xk≡1(modn). If this is true, x is a kth root of unity modulo n but not necessarily primitive. If it is not a primitive root, then there would be some divisor ℓ of k, with xℓ≡1(modn). In order to exclude this possibility, one has only to check for a few ℓ's equal k divided by a prime.

That is, x is a primitive kth root of unity modulo n if and only if xk≡1(modn) and xk/p≢1(modn) for every prime divisor p of n.

For example, if n=17, every positive integer less than 17 is a 16th root of unity modulo 17, and the integers that are primitive 16th roots of unity modulo 17 are exactly those such that x16/2≢1(mod17).

Finding a primitive kth root of unity modulo n

Among the primitive kth roots of unity, the primitive λ(n)th roots are most frequent. It is thus recommended to try some integers for being a primitive λ(n)th root, what will succeed quickly. For a primitive λ(n)th root x, the number xλ(n)/k is a primitive kth root of unity. If k does not divide λ(n), then there will be no kth roots of unity, at all.

Finding multiple primitive kth roots modulo n

Once a primitive kth root of unity x is obtained, every power xℓ is a kth root of unity, but not necessarily a primitive one. The power xℓ is a primitive kth root of unity if and only if k and ℓ are coprime. The proof is as follows: If xℓ is not primitive, then there exists a divisor m of k with (xℓ)m≡1(modn), and since k and ℓ are coprime, there exists integers a,b such that ak+bℓ=1. This yields

xm≡(xm)ak+bℓ≡(xk)ma((xℓ)m)b≡1(modn),

which means that x is not a primitive kth root of unity because there is the smaller exponent m.

That is, by exponentiating x one can obtain φ(k) different primitive kth roots of unity, but these may not be all such roots. However, finding all of them is not so easy.

Finding an n with a primitive kth root of unity modulo n

A motivating question is, in what integer residue class rings does a primitive kth root of unity exist? It can be used to compute a discrete Fourier transform (more precisely a number theoretic transform) of a k-dimensional integer vector. In order to perform the inverse transform, divide by k; that is, k is also a unit modulo n.

A simple way to find such an n is to check for primitive kth roots with respect to the moduli in the arithmetic progression k+1,2k+1,3k+1,… All of these moduli are coprime to k and thus k is a unit. According to Dirichlet's theorem on arithmetic progressions there are infinitely many primes in the progression, and for a prime p, it holds λ(p)=p−1. Thus if mk+1 is prime, then λ(mk+1)=mk, and thus there are primitive kth roots of unity. But the test for primes is too strong, and there may be other appropriate moduli.

Finding an n with multiple primitive roots of unity modulo n

To find a modulus n such that there are primitive k1th,k2th,…,kmth roots of unity modulo n, the following theorem reduces the problem to a simpler one:

For given n there are primitive k1th,…,kmth roots of unity modulo n if and only if there is a primitive lcm⁡(k1,…,km)th root of unity modulo n.
Proof

Backward direction: If there is a primitive lcm⁡(k1,…,km)th root of unity modulo n called x, then xlcm⁡(k1,…,km)/kl is a klth root of unity modulo n.

Forward direction: If there are primitive k1th,…,kmth roots of unity modulo n, then all exponents k1,…,km are divisors of λ(n). This implies lcm⁡(k1,…,km)∣λ(n) and this in turn means there is a primitive lcm⁡(k1,…,km)th root of unity modulo n.

References