%I #52 Jan 13 2022 20:21:20
%S 1,1,1,1,2,1,2,0,2,2,4,0,4,2,0,0,8,2,6,0,0,4,10,0,8,4,6,0,12,0,8,0,0,
%T 8,0,0,12,6,0,0,16,0,12,0,0,10,22,0,12,8,0,0,24,6,0,0,0,12,28,0,16,8,
%U 0,0,0,0,20,0,0,0,24,0,24,12,0,0,0,0,24,0,18,16,40,0,0,12,0,0,40,0,0
%N Number of primitive roots modulo n.
%H T. D. Noe, <a href="/A046144/b046144.txt">Table of n, a(n) for n = 1..10000</a>
%H S. R. Finch, <a href="https://arxiv.org/abs/math/0605019">Idempotents and Nilpotents Modulo n</a>, arXiv:math/0605019 [math.NT], 2006-2017.
%H Eric Weisstein's World of Mathematics, <a href="http://mathworld.wolfram.com/PrimitiveRoot.html">Primitive Root.</a>
%F a(n) is equal to A010554(n) unless n is a term of A033949, in which case a(n)=0.
%p A046144 := proc(n)
%p local a,eulphi,m;
%p if n = 1 then
%p return 1;
%p end if;
%p eulphi := numtheory[phi](n) ;
%p a := 0 ;
%p for m from 0 to n-1 do
%p if numtheory[order](m,n) = eulphi then
%p a := a + 1 ;
%p end if;
%p end do:
%p a;
%p end proc: # _R. J. Mathar_, Jan 12 2016
%t Prepend[ Table[ If[ IntegerQ[ PrimitiveRoot[n]] , EulerPhi[ EulerPhi[n]], 0], {n, 2, 91}],1] (* _Jean-François Alcover_, Sep 13 2011 *)
%o (PARI) for(i=1, 100, p=0; for(q=1, i, if(gcd(q,i)==1 && znorder(Mod(q,i)) == eulerphi(i), p++)); print1(p, ", ")) /* _V. Raman_, Nov 22 2012 */
%o (PARI) a(n) = my(s=znstar(n)); if(#(s.cyc)>1, 0, eulerphi(s.no)) \\ _Jeppe Stig Nielsen_, Oct 18 2019
%o (Perl) use ntheory ":all"; my @A = map { !defined znprimroot($_) ? 0 : euler_phi(euler_phi($_)); } 0..10000; say "$_ $A[$_]" for 1..$#A; # _Dana Jacobsen_, Apr 28 2017
%Y Cf. A001918, A010554, A033949, A046145, A046146, A008330, A002233, A071894, A219027.
%K nonn
%O 1,5
%A _Eric W. Weisstein_