OFFSET
1,2
COMMENTS
A Gaussian integer z is called regular (mod n) if there is a Gaussian integer x such that z^2 * x == z (mod n).
From Robert Israel, Nov 30 2015: (Start)
a(2^k) = 1 + 2^(2k-1) for k >= 1.
a(p) = p^2 if p is an odd prime.
a(p^k) = 1 - p^(2k-2) + p^(2k) if p is a prime == 3 mod 4.
a(p^k) = 1 - 2 p^(k-1) + 2 p^k + p^(2k-2) - 2 p^(2k-1) + p^(2k) if p is a prime == 1 mod 4.(End)
LINKS
Robert Israel, Table of n, a(n) for n = 1..10000
Wikipedia, Gaussian Integer.
EXAMPLE
a(2) = 3 because the regular elements in Z_2[i] are {0, 1, i}.
MATHEMATICA
regularQ[a_, b_, n_] := ! {0} == Union@Flatten@Table[If[Mod[(a + b I) - (a + b I)^2 (x + y I), n] == 0, x + I y, 0], {x, 0, n - 1}, {y, 0, n -1}]; Ho[1]=1; Ho[n_] := Ho[n] = Sum[If[regularQ[a, b, n], 1, 0], {a, 1, n}, {b, 1, n}]; Table[Ho[n], {n, 1, 33}]
f[p_, e_] := If[Mod[p, 4] == 1, 1 - 2*p^(e-1) + 2*p^e + p^(2*e-2) - 2*p^(2*e-1) + p^(2*e), 1 - p^(2*e-2) + p^(2*e)]; f[2, e_] := 1 + 2^(2*e-1); a[1] = 1; a[n_] := Times @@ f @@@ FactorInteger[n]; Array[a, 100] (* Amiram Eldar, Aug 31 2023 *)
CROSSREFS
KEYWORD
nonn,easy,mult
AUTHOR
José María Grau Ribas, Oct 14 2015
STATUS
approved