%I #22 Sep 02 2023 10:41:00
%S 0,2,3,2,5,5,7,2,3,7,11,5,13,3,2,2,17,5,19,7,7,13,23,5,5,2,3,3,29,7,
%T 31,2,3,19,5,5,37,7,2,7,41,5,43,13,2,5,47,5,7,7,7,2,53,5,2,3,13,31,59,
%U 7,61,3,7,2,5,2,67,19,2,3,71,5,73,2,2,7,5,5,79,7,3,43,83,5,13,2,2,13,89
%N a(n) is the fixed point reached when the map x -> A008472(x) is iterated, starting from x = n, with the convention a(1)=0.
%C For n>1, the sequence reaches a fixed point, which is prime.
%C From _Robert Israel_, Mar 31 2020: (Start)
%C a(n) = n if n is prime.
%C a(n) = n/2 + 2 if n is in A108605.
%C a(n) = n/4 + 2 if n is in 4*A001359. (End)
%H Robert Israel, <a href="/A075860/b075860.txt">Table of n, a(n) for n = 1..10000</a>
%e Starting with 60 = 2^2 * 3 * 5 as the first term, add the prime factors of 60 to get the second term = 2 + 3 + 5 = 10. Then add the prime factors of 10 = 2 * 5 to get the third term = 2 + 5 = 7, which is prime. (Successive terms of the sequence will be equal to 7.) Hence a(60) = 7.
%p f:= proc(n) option remember;
%p if isprime(n) then n
%p else procname(convert(numtheory:-factorset(n), `+`))
%p fi
%p end proc:
%p f(1):= 0:
%p map(f, [$1..100]); # _Robert Israel_, Mar 31 2020
%t f[n_] := Module[{a}, a = n; While[ !PrimeQ[a], a = Apply[Plus, Transpose[FactorInteger[a]][[1]]]]; a]; Table[f[i], {i, 2, 100}]
%t (* Second program: *)
%t a[n_] := If[n == 1, 0, FixedPoint[Total[FactorInteger[#][[All, 1]]]&, n]];
%t Array[a, 100] (* _Jean-François Alcover_, Apr 01 2020 *)
%o (Python)
%o from sympy import primefactors
%o def a(n, pn):
%o if n == pn:
%o return n
%o else:
%o return a(sum(primefactors(n)), n)
%o print([a(i, None) for i in range(1, 100)]) # _Gleb Ivanov_, Nov 05 2021
%o (PARI) fp(n, pn) = if (n == pn, n, fp(vecsum(factor(n)[, 1]), n));
%o a(n) = if (n==1, 0, fp(n, 0)); \\ _Michel Marcus_, Sep 02 2023
%Y Cf. A008472 (sum of prime divisors of n), A029908.
%K nonn,look
%O 1,2
%A _Joseph L. Pe_, Oct 15 2002
%E Better description from _Labos Elemer_, Apr 09 2003
%E Name clarified by _Michel Marcus_, Sep 02 2023