A357481 a(n) is the least integer b such that the digit representation of n in base b is equal to the digit representation in base b of the initial terms of the sets of divisors of n in increasing order, or -1 if no such b exists.
2, -1, -1, -1, -1, 2, -1, 6, 6, 8, -1, 10, -1, 12, 12, 14, -1, 16, -1, 18, 18, 20, -1, 22, 20, 24, 24, 26, -1, 28, -1, 30, 30, 32, 30, 34, -1, 36, 36, 38, -1, 40, -1, 42, 42, 44, -1, 3, 42, 3, 48, 2, -1, 52, 50, 54, 54, 56, -1, 58, -1, 60, 2, 62, 60, 7, -1, 66, 66, 68, -1, 70, -1, 72, 7
Offset: 1
Examples
In base 10, 12 is a term of A175252, and there is no other lesser base for which 12 works, so a(12) = 10.
Links
- Michel Marcus, Table of n, a(n) for n = 1..10000
- Peter Munn, Scatterplot with asinh-scale axes. (Axis labeled "A000027(n)" is n.)
Programs
-
PARI
isok(k, b) = my(s=[]); fordiv(k, d, s=concat(s, digits(d, b)); if (fromdigits(s, b)==k, return(1)); if (fromdigits(s, b)> k, return(0))); a(n) = if (n==1, 2, for (b=2, n-1, if (isok(n, b), return(b))); return(-1););
-
Python
from sympy import divisors from sympy.ntheory import digits def ok(n, b): target, s = digits(n, b)[1:], [] if target[0] != 1: return False for d in divisors(n): s += digits(d, b)[1:] if len(s) >= len(target): return s == target def a(n): if n == 1: return 2 for b in range(2, n): if ok(n, b): return b return -1 print([a(n) for n in range(1, 76)]) # Michael S. Branicky, Oct 05 2022
Comments