def _(n=(7^2,prime_range(100)+[i^2 for i in prime_range(3,25)]+[i^3 for i in prime_range(3,12)])):
a=mod(primitive_root(n),n)
for i in range(1,euler_phi(n)):
if gcd(i,euler_phi(n))==1:
pretty_print(html("$%s$ is a primitive root of $%s$, hence has order $%s$"%(a,n,euler_phi(n))))
pretty_print(html(r"The order of $%s$ in $\mathbb{Z}_{%s}$ is also $%s$"%(a,2*n,mod(a,2*n).multiplicative_order())))
pretty_print(html("Compare the powers:"))
print([a^i for i in range(1,euler_phi(n)+1)])
print([a^i for i in range(1,euler_phi(2*n)+1)])