login
a(0) = 0; for n >= 1, a(n) = A000035(n) + a(A257684(n)); in the factorial representation of n the number of digits with maximal possible value allowed in its location.
13

%I #28 Jan 24 2024 01:49:54

%S 0,1,0,1,1,2,0,1,0,1,1,2,0,1,0,1,1,2,1,2,1,2,2,3,0,1,0,1,1,2,0,1,0,1,

%T 1,2,0,1,0,1,1,2,1,2,1,2,2,3,0,1,0,1,1,2,0,1,0,1,1,2,0,1,0,1,1,2,1,2,

%U 1,2,2,3,0,1,0,1,1,2,0,1,0,1,1,2,0,1,0,1,1,2,1,2,1,2,2,3,1,2,1,2,2,3,1,2,1,2,2,3,1,2,1,2,2,3,2,3,2,3,3,4,0

%N a(0) = 0; for n >= 1, a(n) = A000035(n) + a(A257684(n)); in the factorial representation of n the number of digits with maximal possible value allowed in its location.

%C In the factorial representation of n, given as {d_k, ..., d_3, d_2, d_1}, the maximal allowed digit for any position j is j. This sequence gives the number of digits in the whole representation [A007623(n)] that attain that maximum allowed value.

%H <a href="/index/Fa#facbase">Index entries for sequences related to factorial base representation</a>.

%F a(0) = 0; for n >= 1, a(n) = A000035(n) + a(A257684(n)).

%F Other identities. For all n >= 1:

%F a(n!-1) = n-1. [n!-1 also gives the first position where n-1 occurs.]

%e For n=19, which has factorial representation "301", the digits at position 1 and 3, namely "1" and "3" are equal to their one-based position index, in other words, the maximal digits allowed in those positions (while "0" at position 2 is not), thus a(19) = 2.

%t a[n_] := Module[{k = n, m = 2, c = 0, r}, While[{k, r} = QuotientRemainder[k, m]; k != 0 || r != 0, If[r == m - 1, c++]; m++]; c]; Array[a, 100, 0] (* _Amiram Eldar_, Jan 23 2024 *)

%o (Scheme, with memoization-macro definec)

%o (definec (A260736 n) (if (zero? n) 0 (+ (A000035 n) (A260736 (A257684 n)))))

%o (Python)

%o from sympy import factorial as f

%o def a007623(n, p=2): return n if n<p else a007623(n//p, p+1)*10 + n%p

%o def a257684(n):

%o x=str(a007623(n))[:-1]

%o y="".join(str(int(i) - 1) if int(i)>0 else '0' for i in x)[::-1]

%o return 0 if n==1 else sum(int(y[i])*f(i + 1) for i in range(len(y)))

%o def a(n): return 0 if n==0 else n%2 + a(a257684(n))

%o print([a(n) for n in range(101)]) # _Indranil Ghosh_, Jun 20 2017

%Y Cf. A000035, A007623, A257684.

%Y Cf. also A257511.

%K nonn,base

%O 0,6

%A _Antti Karttunen_, Aug 27 2015