|
|
A196058
|
|
Diameter (i.e., largest distance between two vertices) of the rooted tree with Matula-Goebel number n.
|
|
2
|
|
|
0, 1, 2, 2, 3, 3, 2, 2, 4, 4, 4, 3, 3, 3, 5, 2, 3, 4, 2, 4, 4, 5, 4, 3, 6, 4, 4, 3, 4, 5, 5, 2, 6, 4, 5, 4, 3, 3, 5, 4, 4, 4, 3, 5, 5, 4, 5, 3, 4, 6, 5, 4, 2, 4, 7, 3, 4, 5, 4, 5, 4, 6, 4, 2, 6, 6, 3, 4, 5, 5, 4, 4, 4, 4, 6, 3, 6, 5, 5, 4, 4, 5, 4, 4, 6, 4, 6, 5, 3, 5, 5, 4, 7, 5, 5, 3, 6, 4, 6, 6, 4, 5, 4, 4, 5, 3, 3, 4, 5, 7, 5, 3, 5, 4, 6, 5, 5, 5, 5, 5
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,3
|
|
COMMENTS
|
The Matula-Goebel number of a rooted tree can be defined in the following recursive manner: to the one-vertex tree there corresponds the number 1; to a tree T with root degree 1 there corresponds the t-th prime number, where t is the Matula-Goebel number of the tree obtained from T by deleting the edge emanating from the root; to a tree T with root degree m>=2 there corresponds the product of the Matula-Goebel numbers of the m branches of T.
|
|
LINKS
|
|
|
FORMULA
|
a(1)=0; if n=p(t) (=the t-th prime), then a(n)=max(a(t), 1+H(t)); if n=rs (r,s,>=2), then a(n)=max(a(r), a(s), H(r)+H(s)), where H(m) is the height of the tree with Matula-Goebel number m (see A109082). The Maple program is based on this recursive formula.
The Gutman et al. references contain a different recursive formula.
|
|
EXAMPLE
|
a(2^m) = 2 because the rooted tree with Matula-Goebel number 2^m is a star with m edges.
|
|
MAPLE
|
with(numtheory): a := proc (n) local r, s, H: r := proc (n) options operator, arrow: op(1, factorset(n)) end proc: s := proc (n) options operator, arrow: n/r(n) end proc: H := proc (n) if n = 1 then 0 elif bigomega(n) = 1 then 1+H(pi(n)) else max(H(r(n)), H(s(n))) end if end proc: if n = 1 then 0 elif bigomega(n) = 1 then max(a(pi(n)), 1+H(pi(n))) else max(a(r(n)), a(s(n)), H(r(n))+H(s(n))) end if end proc: seq(a(n), n = 1 .. 120);
|
|
MATHEMATICA
|
r[n_] := r[n] = FactorInteger[n][[1, 1]];
s[n_] := s[n] = n/r[n];
H[n_] := H[n] = Which[n == 1, 0, PrimeOmega[n] == 1, 1 + H[PrimePi[n]], True, Max[H[r[n]], H[s[n]]]];
a[n_] := a[n] = Which[n == 1, 0, PrimeOmega[n] == 1, Max[a[PrimePi[n]], 1 + H[PrimePi[n]]], True, Max[a[r[n]], a[s[n]], H[r[n]] + H[s[n]]]];
|
|
PROG
|
(PARI) HD(n) = { if(n==1, return([0, 0]),
my(f=factor(n)~, h=0, d=0, hd);
foreach(f, p,
hd=HD(primepi(p[1]));
hd[1]++;
d=max(max(d, if(p[2]>1, 2*hd[1], hd[2])), h+hd[1]);
h=max(h, hd[1])
);
return([h, d])
)
};
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|