login
Starting from n, repeatedly compute the sum of the prime divisors until a fixed point or 0 is reached; a(n) is the number of terms, including n.
3

%I #48 Mar 31 2023 09:17:29

%S 2,1,1,2,1,2,1,2,2,2,1,2,1,3,3,2,1,2,1,2,3,2,1,2,2,4,2,3,1,3,1,2,4,2,

%T 3,2,1,4,3,2,1,3,1,2,3,3,1,2,2,2,3,4,1,2,3,3,3,2,1,3,1,5,3,2,3,3,1,2,

%U 5,4,1,2,1,4,3,4,3,3,1,2,2,2,1,3,3,4,3,2,1,3

%N Starting from n, repeatedly compute the sum of the prime divisors until a fixed point or 0 is reached; a(n) is the number of terms, including n.

%C a(n) is 1 + the number of iterations of n -> A008472(n) until n = A008472(n) or n=0.

%C The fixed points are in A075860.

%C For n>1 the fixed point is a prime number.

%H Robert Israel, <a href="/A321944/b321944.txt">Table of n, a(n) for n = 1..10000</a>

%e For n=21: 21->{3,7} 3+7=10, 10->{2,5} 2+5=7, 7->{7} 7; 3 terms found {21,10,7}, therefore a(21) = 3.

%e For n=2: 2->{2} 2, 1 term found {2}, therefore a(2) = 1.

%e For n=1: 1->{} 0, 2 term found {1,0}, therefore a(1) = 2.

%p f:= proc(n) option remember;

%p if isprime(n) then 1

%p else 1+procname(convert(numtheory:-factorset(n),`+`))

%p fi

%p end proc:

%p f(1):= 2:

%p map(f, [$1..100]); # _Robert Israel_, Mar 30 2020

%t s[n_] := DivisorSum[n, # &, PrimeQ[#] &]; a[1] = 2; a[n_] := Length[ FixedPointList[s, n]] - 1; Array[a, 60, 0] (* _Amiram Eldar_, Dec 12 2018 *)

%o (C++)

%o int Sum(int x){int acum=0,i=-1; for(;primes[++i]<=x;)if(!(x%primes[i])) acum+=primes[i]; return acum;}

%o int a(int n){int cn=0,last=n;while(1){cn++;n=Sum(n);if(n==last)break;last=n;} return cn;}

%o (PARI) a(n)={my(k=1); while(n&&!isprime(n), k++; n=vecsum(factor(n)[, 1])); k} \\ _Andrew Howroyd_, Dec 12 2018

%Y Cf. A008472, A075860, A002217.

%K nonn

%O 1,1

%A _Wilmer Emiro Castrillon Calderon_, Dec 12 2018