OFFSET
0,4
COMMENTS
The value 0 at index 0 says 0 has no primitive roots, but the 0 at index 1 says 1 has a primitive root of 0, the only real 0 in the sequence.
a(n) is nonzero if and only if n is 2, 4, or of the form p^k, or 2*p^k where p is an odd prime and k>0. - Tom Edgar, Jun 02 2014
LINKS
T. D. Noe, Table of n, a(n) for n = 0..10000
Pēteris K. Siliņš, Cross ratios for finite field geometries, Bachelor's Thesis, Univ. Groningen (Netherlands, 2024). See p. 17.
Eric Weisstein's World of Mathematics, Primitive Root.
MAPLE
A046145 := proc(n)
if n <=1 then
0;
else
pr := numtheory[primroot](n) ;
if pr = FAIL then
return 0 ;
else
return pr ;
end if;
end if;
end proc:
seq(A046145(n), n=0..110) ; # R. J. Mathar, Jul 08 2010
MATHEMATICA
smallestPrimitiveRoot[n_ /; n <= 1] = 0; smallestPrimitiveRoot[n_] := Block[{pr = PrimitiveRoot[n], g}, If[! NumericQ[pr], g = 0, g = 1; While[g <= pr, If[ CoprimeQ[g, n] && MultiplicativeOrder[g, n] == EulerPhi[n], Break[]]; g++]]; g]; smallestPrimitiveRoot /@ Range[0, 100] (* Jean-François Alcover, Feb 15 2012 *)
f[n_] := Block[{pr = PrimitiveRootList[n]}, If[pr == {}, 0, pr[[1]]]]; Array[f, 105, 0] (* v10.0 Robert G. Wilson v, Nov 04 2014 *)
PROG
(PARI) { A046145(n) = for(q=1, n-1, if(gcd(q, n)==1 && znorder(Mod(q, n))==eulerphi(n), return(q); )); 0; } /* V. Raman, Nov 22 2012, edited by Max Alekseyev, Apr 20 2017 */
(Perl) use ntheory ":all"; say "$_ ", znprimroot($_) || 0 for 0..100; # Dana Jacobsen, Mar 16 2017
CROSSREFS
KEYWORD
nonn,easy,nice
AUTHOR
EXTENSIONS
Initial terms corrected by Harry J. Smith, Jan 27 2005
STATUS
approved