OFFSET
1,2
COMMENTS
LINKS
Jud McCranie, Table of n, a(n) for n = 1..109 (terms 1..79 from T. D. Noe, terms 80..86 from Donovan Johnson)
Wikipedia, Highly totient number.
EXAMPLE
a(4) = 8 since phi(x) = 8 has the solutions {15, 16, 20, 24, 30}, one more solution than a(3) = 4 for which phi(x) = 4 has solutions {5, 8, 10, 12}.
MAPLE
HighlyTotientNumbers := proc(n) # n > 1 is search maximum
local L, m, i, r; L := NULL; m := 0;
for i from 1 to n do
r := nops(numtheory[invphi](i));
if r > m then L := L, [i, r]; m := r fi
od; [L] end:
A097942_list := n -> seq(s[1], s = HighlyTotientNumbers(n));
A097942_list(500); # Peter Luschny, Sep 01 2012
MATHEMATICA
searchMax = 2000; phiAnsYldList = Table[0, {searchMax}]; Do[phiAns = EulerPhi[m]; If[phiAns <= searchMax, phiAnsYldList[[phiAns]]++ ], {m, 1, searchMax^2}]; highlyTotientList = {1}; currHigh = 1; Do[If[phiAnsYldList[[n]] > phiAnsYldList[[currHigh]], highlyTotientList = {highlyTotientList, n}; currHigh = n], {n, 2, searchMax}]; Flatten[highlyTotientList]
PROG
(Sage)
def HighlyTotientNumbers(n) : # n > 1 is search maximum.
R = {}
for i in (1..n^2) :
r = euler_phi(i)
if r <= n :
R[r] = R[r] + 1 if r in R else 1
# print R.keys() # A002202
# print R.values() # A058277
P = []; m = 1
for l in sorted(R.keys()) :
if R[l] > m : m = R[l]; P.append((l, m))
# print [l[0] for l in P] # A097942
# print [l[1] for l in P] # A131934
return P
A097942_list = lambda n: [s[0] for s in HighlyTotientNumbers(n)]
A097942_list(500) # Peter Luschny, Sep 01 2012
(PARI)
{ A097942_list(n) = local(L, m, i, r);
m = 0;
for(i=1, n,
\\ from Max Alekseyev, http://home.gwu.edu/~maxal/gpscripts/
r = numinvphi(i);
if(r > m, print1(i, ", "); m = r) );
} \\ Peter Luschny, Sep 01 2012
CROSSREFS
KEYWORD
nonn
AUTHOR
Alonso del Arte, Sep 05 2004
EXTENSIONS
Edited and extended by Robert G. Wilson v, Sep 07 2004
STATUS
approved