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
LINKS
Reinhard Zumkeller, Table of n, a(n) for n = 0..2099
Anthony Overmars, Survey of RSA Vulnerabilities, in: Menachem Domb (ed.), Modern Cryptography - Current Challenges and Solutions, Intechopen, 2019, pp. 17-41. See pp. 29-30.
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
KEYWORD
nonn,base,easy,nice
AUTHOR
STATUS
approved