cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A319447 a(n) is the rank of the multiplicative group of Eisenstein integers modulo n.

This page as a plain text file.
%I A319447 #40 Jun 21 2025 20:00:14
%S A319447 0,1,1,2,1,2,2,3,3,2,1,3,2,3,2,3,1,4,2,3,3,2,1,4,2,3,3,4,1,3,2,3,2,2,
%T A319447 3,4,2,3,3,4,1,4,2,3,4,2,1,4,2,2,2,4,1,4,2,5,3,2,1,4,2,3,5,3,3,3,2,3,
%U A319447 2,4,1,4,2,3,2,4,3,4,2,4,3,2,1,5,2,3,2
%N A319447 a(n) is the rank of the multiplicative group of Eisenstein integers modulo n.
%C A319447 The rank of a finitely generated group rank(G) is defined to be the size of the minimal generating sets of G.
%C A319447 Let p be an odd prime and (Z[w]/nZ[w])* be the multiplicative group of Gaussian integers modulo n, then: (Z[w]/p^e*Z[w])* = (C_((p-1)*p^(e-1)))^2 if p == 1 (mod 6); C_(p^(e-1)) X C_(p^(e-1)*(p^2-1)) if p == 5 (mod 6); (Z[w]/3^e*Z[w])* = C_3 X C_(3^(e-1)) X C_(2*3^(e-1)); (Z[w]/2Z[w])* = C_3, (Z[w]/2^e*Z[w])* = C_2 X C_(2^(e-2)) X C_(3*2^(e-1)) for e >= 2. If n = Product_{i=1..k} (p_i)^(e_i), then (Z[w]/nZ[w])* = (Z[w]/(p_1)^(e_1)*Z[w])* X (Z[w]/(p_2)^(e_2)*Z[w])* X ... X (Z[w]/(p_k)^(e_k)*Z[w])*.
%C A319447 The order of (Z[w]/nZ[w])* is A319445(n) and the exponent of it is A319446(n).
%C A319447 {a(n)} is not additive: (Z[w]/2Z[w])* = C_3, (Z[w]/25Z[w])* = C_5 X C_120, so (Z[w]/50Z[w])* = C_15 X C_120, a(50) < a(2) + a(25).
%C A319447 A319445(n)/A319446(n) is always an integer, and is 1 if and only if (Z[w]/nZ[w])* is cyclic, that is, rank((Z[w]/nZ[w])*) = a(n) = 0 or 1, and n has a primitive root in (Z[w]/nZ[w])*. a(n) = 1 if and only if n = 3 or a prime congruent to 2 mod 3. - _Jianing Song_, Jan 08 2019
%C A319447 From _Jianing Song_, Oct 03 2022: (Start)
%C A319447 More generally, let pi be a prime element of Z[w] of norm p or p^2 for prime p, then:
%C A319447 - for p == 1 (mod 6), (Z[w]/(pi^e)Z[w])* = C_((p-1)*p^(e-1));
%C A319447 - for p == 5 (mod 6), (Z[w]/(pi^e)Z[w])* = C_(p^(e-1)) X C_(p^(e-1)*(p^2-1));
%C A319447 - for p = 3, (Z[w]/(pi^e)Z[w])* = C_2 for e = 1, C_3 X C_(3^floor((e-2)/2)) X C_(2*3^ceiling((e-2)/2)) for e >= 2;
%C A319447 - for p = 2, (Z[w]/(pi^e)Z[w])* = C_3 for e = 1, C_2 X C_(2^(e-2)) X C_(3*2^(e-1)) for e >= 2.
%C A319447 For a more general result see my link below. (End)
%H A319447 Jianing Song, <a href="/A319447/b319447.txt">Table of n, a(n) for n = 1..10000</a>
%H A319447 Jianing Song, <a href="/A306933/a306933.pdf">Structure of (R/P^e)* for R the ring of integers of a quadratic field and P a prime ideal of R</a>
%H A319447 Wikipedia, <a href="https://en.wikipedia.org/wiki/Eisenstein_integer">Eisenstein integer</a>
%F A319447 Let p be an odd prime, then: a(p^e) = 2 if p == 1 (mod 6) or p == 5 (mod 6), e >= 2; a(p) = 1 if p == 5 (mod 6). a(3) = 1, a(3^e) = 3 for e >= 2. a(2) = 1, a(4) = 2, a(2^e) = 3 for e >= 3. [Corrected by _Jianing Song_, Aug 05 2019]
%e A319447 (Z[w]/1Z[w])* = C_1 (has rank 0);
%e A319447 (Z[w]/2Z[w])* = C_3 (has rank 1);
%e A319447 (Z[w]/3Z[w])* = C_6 (has rank 1);
%e A319447 (Z[w]/4Z[w])* = C_2 X C_6 (has rank 2);
%e A319447 (Z[w]/5Z[w])* = C_24 (has rank 1);
%e A319447 (Z[w]/6Z[w])* = C_3 X C_6 (has rank 2);
%e A319447 (Z[w]/7Z[w])* = C_6 X C_6 (has rank 2);
%e A319447 (Z[w]/8Z[w])* = C_2 X C_2 X C_12 (has rank 3);
%e A319447 (Z[w]/9Z[w])* = C_3 X C_3 X C_6 (has rank 3);
%e A319447 (Z[w]/10Z[w])* = C_3 X C_24 (has rank 2).
%o A319447 (PARI)
%o A319447 rad(n) = factorback(factorint(n)[, 1]);
%o A319447 grad(n)=
%o A319447 {
%o A319447     my(r=1, f=factor(n));
%o A319447     for(j=1, #f[, 1], my(p=f[j, 1], e=f[j, 2]);
%o A319447         if(p==2&e==1, r*=3);
%o A319447         if(p==2&e==2, r*=12);
%o A319447         if(p==2&e>=3, r*=24);
%o A319447         if(p==3&e==1, r*=6);
%o A319447         if(p==3&e>=2, r*=54);
%o A319447         if(p%6==1, r*=(rad(p-1))^2);
%o A319447         if(p%6==5&e==1, r*=rad(p^2-1));
%o A319447         if(p%6==5&e>=2, r*=p^2*rad(p^2-1));
%o A319447     );
%o A319447     return(r);
%o A319447 }
%o A319447 a(n)=if(n>1, vecmax(factor(grad(n))[, 2]), 0); \\ The program is based on the facts that although rank((Z[w]/nZ[w])*) is not additive, the p-rank of (Z[w]/nZ[w])* is additive for any prime p, and that rank((Z[w]/nZ[w])*) is the maximum of the p-rank of (Z[w]/nZ[w])* where p runs through all primes. - _Jianing Song_, Aug 05 2019
%Y A319447 Cf. A046072, A319445, A319446.
%Y A319447 Equivalent in the ring of Gaussian integers: A316506.
%K A319447 nonn
%O A319447 1,4
%A A319447 _Jianing Song_, Sep 19 2018
%E A319447 Corrected by _Jianing Song_, Jan 12 2019