OFFSET
1,3
COMMENTS
The Matula-Goebel number of a rooted tree is 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.
a(n) is, for n >= 2, the number of prime function prime(.) = A000040(.) operations in the complete reduction of n. See the W. Lang link with a list of the reductions for n = 2..100, where a curly bracket notation {.} is used for prime(.). - Wolfdieter Lang, Apr 03 2018
From Gus Wiseman, Mar 23 2019: (Start)
Every positive integer has a unique factorization (encoded by A324924) into factors q(i) = prime(i)/i, i > 0. For example:
11 = q(1) q(2) q(3) q(5)
50 = q(1)^3 q(2)^2 q(3)^2
360 = q(1)^6 q(2)^3 q(3)
In this factorization, a(n) is the number of factors counted with multiplicity. For example, a(11) = 4, a(50) = 7, a(360) = 10.
(End)
From Antti Karttunen, Oct 23 2023: (Start)
Totally additive with a(prime(n)) = 1 + a(n).
(End)
LINKS
Reinhard Zumkeller, Table of n, a(n) for n = 1..10000
Emeric Deutsch, Tree statistics from Matula numbers, arXiv preprint arXiv:1111.4288 [math.CO], 2011.
F. Göbel, On a 1-1-correspondence between rooted trees and natural numbers, J. Combin. Theory, B 29 (1980), 141-143.
I. Gutman and A. Ivic, On Matula numbers, Discrete Math., 150, 1996, 131-142.
I. Gutman and Yeong-Nan Yeh, Deducing properties of trees from their Matula numbers, Publ. Inst. Math., 53 (67), 1993, 17-22.
Wolfdieter Lang, Complete prime function reduction for n = 2..100.
D. W. Matula, A natural rooted tree enumeration by prime factorization, SIAM Rev. 10 (1968) 273.
FORMULA
EXAMPLE
a(7) = 3 because the rooted tree with Matula-Goebel number 7 is the rooted tree Y.
a(2^m) = m because the rooted tree with Matula-Goebel number 2^m is the star tree with m edges.
MAPLE
with(numtheory): a := proc (n) local r, s: r := proc (n) options operator, arrow: op(1, factorset(n)) end proc: s := proc (n) options operator, arrow: n/r(n) end proc: if n = 1 then 0 elif bigomega(n) = 1 then 1+a(pi(n)) else a(r(n))+a(s(n)) end if end proc: seq(a(n), n = 1 .. 110);
MATHEMATICA
a[1] = 0; a[n_?PrimeQ] := a[n] = 1 + a[PrimePi[n]]; a[n_] := Total[#[[2]] * a[#[[1]] ]& /@ FactorInteger[n]];
Array[a, 110] (* Jean-François Alcover, Nov 16 2017 *)
difac[n_]:=If[n==1, {}, With[{i=PrimePi[FactorInteger[n][[1, 1]]]}, Sort[Prepend[difac[n*i/Prime[i]], i]]]];
Table[Length[difac[n]], {n, 100}] (* Gus Wiseman, Mar 23 2019 *)
PROG
(Haskell)
import Data.List (genericIndex)
a196050 n = genericIndex a196050_list (n - 1)
a196050_list = 0 : g 2 where
g x = y : g (x + 1) where
y = if t > 0 then a196050 t + 1 else a196050 r + a196050 s
where t = a049084 x; r = a020639 x; s = x `div` r
-- Reinhard Zumkeller, Sep 03 2013
(PARI) a(n) = my(f=factor(n)); [self()(primepi(p))+1 |p<-f[, 1]]*f[, 2]; \\ Kevin Ryde, May 28 2021
(Python)
from functools import lru_cache
from sympy import isprime, primepi, factorint
@lru_cache(maxsize=None)
def A196050(n):
if n == 1 : return 0
if isprime(n): return 1+A196050(primepi(n))
return sum(e*A196050(p) for p, e in factorint(n).items()) # Chai Wah Wu, Mar 19 2022
CROSSREFS
KEYWORD
nonn
AUTHOR
Emeric Deutsch, Sep 27 2011
STATUS
approved