cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A357172 a(n) is the smallest integer that has exactly n divisors whose decimal digits are in strictly increasing order.

Original entry on oeis.org

1, 2, 4, 6, 16, 12, 54, 24, 36, 48, 72, 180, 144, 360, 336, 468, 504, 936, 1008, 1512, 2520, 3024, 5040, 6552, 7560, 22680, 13104, 19656, 49140, 105840, 39312, 78624, 98280, 248976, 334152, 196560, 393120, 668304, 1244880, 1670760, 1867320, 4520880, 3341520, 3734640
Offset: 1

Views

Author

Bernard Schott, Sep 16 2022

Keywords

Comments

This sequence is finite since A009993 is finite with 511 nonzero terms, hence the last term is a(511) = lcm of the 511 nonzero terms of A009993.
a(511) = 8222356410...6120992000 and has 1036 digits. - Michael S. Branicky, Sep 16 2022

Examples

			For n=7, the divisors of 54 are {1, 2, 3, 6, 9, 18, 27, 54} of which 7 have their digits in strictly increasing order (all except 54). No integer < 54 has 7 such divisors, so a(7) = 54.
		

Crossrefs

Similar: A087997 (palindromic), A355303 (undulating), A355594 (alternating).

Programs

  • Mathematica
    s[n_] := DivisorSum[n, 1 &, Less @@ IntegerDigits[#] &]; seq[len_, nmax_] := Module[{v = Table[0, {len}], n = 1, c = 0, i}, While[c < len && n < nmax, i = s[n]; If[i <= len && v[[i]] == 0, v[[i]] = n; c++]; n++]; v]; seq[25, 10^4] (* Amiram Eldar, Sep 16 2022 *)
  • PARI
    isok(d) = Set(d=digits(d)) == d; \\ A009993
    f(n) = sumdiv(n, d, isok(d)); \\ A357171
    a(n) = my(k=1); while (f(k) !=n, k++); k; \\ Michel Marcus, Sep 16 2022
    
  • Python
    from sympy import divisors
    from itertools import count, islice
    def c(n): s = str(n); return s == "".join(sorted(set(s)))
    def f(n): return sum(1 for d in divisors(n, generator=True) if c(d))
    def agen():
        n, adict = 1, dict()
        for k in count(1):
            fk = f(k)
            if fk not in adict: adict[fk] = k
            while n in adict: yield adict[n]; n += 1
    print(list(islice(agen(), 37))) # Michael S. Branicky, Sep 16 2022

Extensions

More terms from Amiram Eldar, Sep 16 2022