Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
A049345
n written in primorial base.
130
0, 1, 10, 11, 20, 21, 100, 101, 110, 111, 120, 121, 200, 201, 210, 211, 220, 221, 300, 301, 310, 311, 320, 321, 400, 401, 410, 411, 420, 421, 1000, 1001, 1010, 1011, 1020, 1021, 1100, 1101, 1110, 1111, 1120, 1121, 1200, 1201, 1210, 1211, 1220, 1221, 1300, 1301, 1310, 1311
OFFSET
0,3
COMMENTS
Places reading from right have values (1, 2, 6, 30, 210, ...) = primorials.
For n < 10 * 7# = 2100: a(n) = concatenation of n-th row in A235168 and for n > 0: A055642(a(n)) = A235224(n); for larger numbers the representation in A235168 is more appropriate. - Reinhard Zumkeller, Jan 05 2014
In the long run, numbers have fewer digits in the primorial base than in the factorial base (cf. A007623), since factorial(n) < n^n < primorial(n) for n > 12. However, the point where the digits become larger than 9 comes earlier: as soon as 10*7*5*3*2 = 2100 for the primorial base vs 10! = 3628800 in the factorial base. From there on, the representation using concatenation of digits written in decimal becomes ambiguous. - M. F. Hasler, Sep 22 2014
MATHEMATICA
Table[FromDigits@ IntegerDigits[n, MixedRadix[Reverse@ Prime@ Range@ 8]], {n, 0, 51}] (* Michael De Vlieger, Aug 23 2016, Version 10.2 *)
PROG
(Haskell)
a049345 n | n < 2100 = read $ concatMap show (a235168_row n) :: Int
| otherwise = error "ambiguous primorial representation"
-- Reinhard Zumkeller, Jan 05 2014
(PARI) A049345(n, p=2) = if(n<p, n, A049345(n\p, nextprime(p+1))*10 + n%p) \\ Valid at least up to the point where digits > 9 would arise (n=10*7*5*3*2), thereafter the definition of the sequence is ambiguous. M. F. Hasler, Sep 22 2014
(Scheme)
(define (A049345 n) (if (>= n 2100) (error "A049345: ambiguous primorial representation when n is larger than 2099:" n) (let loop ((n n) (s 0) (t 1) (i 1)) (if (zero? n) s (let* ((p (A000040 i)) (d (modulo n p))) (loop (/ (- n d) p) (+ (* t d) s) (* 10 t) (+ 1 i)))))))
;; Antti Karttunen, Aug 26 2016
(Python)
from sympy import nextprime
def a(n, p=2):
if n>2099: print("Error! Ambiguous primorial representation when n is larger than 2099")
else: return n if n<p else a(n//p, nextprime(p))*10 + n%p
print([a(n) for n in range(101)]) # Indranil Ghosh, Jun 22 2017
CROSSREFS
Cf. A000040, A002110 (primorials), A235168, A235224, A276086, A276150.
Cf. factorial base A007623.
Sequence in context: A261909 A325483 A235202 * A007623 A109827 A109839
KEYWORD
nonn,base,easy,nice
AUTHOR
STATUS
approved