OFFSET
0,7
COMMENTS
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.
LINKS
FORMULA
Other identities. For all n >= 0:
a(A153880(n)) = n.
EXAMPLE
n A007623(n) [subtract 1 from max.digits a(n)
[in factorial then shift one digit right] [reinterpret
base] in decimal]
0 0 -> 0 = 0
1 1 -> 0 = 0
2 10 -> 1 = 1
3 11 -> 1 = 1
4 20 -> 1 = 1
5 21 -> 1 = 1
6 100 -> 10 = 2
7 101 -> 10 = 2
8 110 -> 11 = 3
9 111 -> 11 = 3
10 120 -> 11 = 3
11 121 -> 11 = 3
12 200 -> 20 = 4
13 201 -> 20 = 4
14 210 -> 21 = 5
15 211 -> 21 = 5
16 220 -> 21 = 5
17 221 -> 21 = 5
18 300 -> 20 = 4
...
23 321 -> 21 = 5
119 4321 -> 321 = 23
PROG
(MIT/GNU Scheme)
(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)))))))))
(Python)
from sympy import factorial as f
def a007623(n, p=2): return n if n<p else a007623(n//p, p+1)*10 + n%p
def a(n):
x=str(a007623(n))[::-1]
y="".join(str(i) if i + 1==int(x[i]) else x[i] for i in range(len(x)))[1:]
return 0 if n==0 else sum(int(y[i])*f(i + 1) for i in range(len(y)))
print([a(n) for n in range(101)]) # Indranil Ghosh, Jun 24 2017
CROSSREFS
KEYWORD
nonn,base
AUTHOR
Antti Karttunen, Dec 23 2015
STATUS
approved