Sunday, December 15, 2019

What does "maximum order elements to mod n" mean for a number n without primitive roots modulo n?




I apologize because probably this is trivial, but I do not understand the concept:




"maximum order elements to mod n for n".




This is the context: in the Wikipedia in the primitive roots modulo n page there is a table in the section "Table of primitive roots" (link) saying:





"The following is a list about maximum order elements to mod n for n36,




And then the table also explains:




"maximum order elements to mod n (for ns with "*", the maximum order of n does not equal to the Euler totient function of n, so there are no primitive roots mod n, for other ns, they are primitive roots mod n)




Basically, I would like to understand the definition and how to calculate the maximum order elements to mod n for those numbers n that do not have primitive roots mod n.




For instance, according to the explanation in the Wikipedia, for n=8 the maximum order element to mod 8 are {3,5,7}, and n=8 does not have primitive roots modulo 8, but I do not understand how they are calculated.



UPDATE
As far as I can see, it would be as follows, but if somebody could confirm this, it would be very appreciated, because I do not see it clearly:



For instance:




3^1 = 3 \equiv 3 \pmod8




3^2 = 9 \equiv 1 \pmod8



3^3 = 27 \equiv 3 \pmod8



3^4 = 81 \equiv 1 \pmod8



3^5 = 243 \equiv 3 \pmod8



3^6 = 729 \equiv 1 \pmod8




3^7 = 2187 \equiv 3 \pmod8




So in this case the length of the cycle of the mods is 2 (only 1,3 and the again 1,3, etc.) and that is smaller than the totien function \varphi(8)=4 \gt 2 so 3 is not a primitive root modulo 8. Is this correct?



If it is correct then the only way to calculate the "maximum order elements to mod n" for a number n without primitive roots modulo n is as above, making all the possible exponents and deciding according to the results. Is that right?



Thank you!




UPDATE: the explanation in the answers worked like a charm, here is the Python code (very brute force but works, be aware that the variable "value" is the value for n):



from gmpy2 import gcd
def first_max_order_elem_mod_n(value):
lo = []
for i in range (1,value):
if gcd(value,i)==1:
myexp = 1
while ((i**myexp)%value)!=1:
myexp = myexp + 1

lo.append([i,myexp])

bigger = 0
current_pos = 0
for k in lo:
if k[1]>bigger:
current_pos = k[0]
bigger = k[1]
return current_pos


Answer



In {\mathbb{Z}/n}^{\times}, look at the set of k, 1\le k \le n, for which (k,n) = 1 (multiplicative units in \mathbb{Z}/n). Calculate their orders (the smallest positive integer i s.t. k^i = 1). Denote by o the largest i you get from your order calculation for all units. Then the right table entry is o, the left those k with order o. In your example case for n=8, for all units k different from 1, k^2 =1 mod n; and the units other than 1 are \{3,5,7\}.


No comments:

Post a Comment

analysis - Injection, making bijection

I have injection f \colon A \rightarrow B and I want to get bijection. Can I just resting codomain to f(A)? I know that every function i...