%I #21 Mar 14 2021 17:09:07
%S 0,0,1,1,1,1,2,2,3,3,3,3,4,4,5,5,5,5,4,4,5,5,5,5,6,6,7,7,7,7,8,8,9,9,
%T 9,9,10,10,11,11,11,11,10,10,11,11,11,11,12,12,13,13,13,13,14,14,15,
%U 15,15,15,16,16,17,17,17,17,16,16,17,17,17,17,18,18,19,19,19,19,20,20,21,21,21,21,22,22,23,23,23,23,22
%N Decrement by 1 all maximal digits in factorial base representation of n and then shift it one digit right.
%C By "maximal digits" are here understood any digit k that occurs in position k, digit-positions numbered from the right and starting from 1. For example in A007623(677) = "53021", the digits "5" and "1" are maximal, because no larger digits will fit into those positions in a well-formed factorial base representation of a natural number.
%H Antti Karttunen, <a href="/A266193/b266193.txt">Table of n, a(n) for n = 0..10080</a>
%H <a href="/index/Fa#facbase">Index entries for sequences related to factorial base representation</a>
%F Other identities. For all n >= 0:
%F a(A153880(n)) = n.
%e n A007623(n) [subtract 1 from max.digits a(n)
%e [in factorial then shift one digit right] [reinterpret
%e base] in decimal]
%e 0 0 -> 0 = 0
%e 1 1 -> 0 = 0
%e 2 10 -> 1 = 1
%e 3 11 -> 1 = 1
%e 4 20 -> 1 = 1
%e 5 21 -> 1 = 1
%e 6 100 -> 10 = 2
%e 7 101 -> 10 = 2
%e 8 110 -> 11 = 3
%e 9 111 -> 11 = 3
%e 10 120 -> 11 = 3
%e 11 121 -> 11 = 3
%e 12 200 -> 20 = 4
%e 13 201 -> 20 = 4
%e 14 210 -> 21 = 5
%e 15 211 -> 21 = 5
%e 16 220 -> 21 = 5
%e 17 221 -> 21 = 5
%e 18 300 -> 20 = 4
%e ...
%e 23 321 -> 21 = 5
%e 119 4321 -> 321 = 23
%o (MIT/GNU Scheme)
%o (define (A266193 n) (let loop ((n n) (z 0) (i 2) (f 0)) (cond ((zero? n) z) (else (let ((d (remainder n i))) (loop (quotient n i) (+ z (* f (- d (if (< d (- i 1)) 0 1)))) (+ 1 i) (if (zero? f) 1 (* f (- i 1)))))))))
%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 a(n):
%o x=str(a007623(n))[::-1]
%o y="".join(str(i) if i + 1==int(x[i]) else x[i] for i in range(len(x)))[1:]
%o return 0 if n==0 else sum(int(y[i])*f(i + 1) for i in range(len(y)))
%o print([a(n) for n in range(101)]) # _Indranil Ghosh_, Jun 24 2017
%Y Cf. A007623, A257684, A266123.
%Y Left inverse of A153880.
%K nonn,base
%O 0,7
%A _Antti Karttunen_, Dec 23 2015