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.

A330128 a(n) is the number of terms in the analog of A121805 but starting with n, or -1 if that sequence is infinite.

Original entry on oeis.org

2137453, 194697747222394, 2, 199900, 19706, 209534289952018960, 15, 198104936410, 19511030, 20573, 20572, 2137452, 20534, 19238, 2, 2089707, 20670629294, 1, 21482, 19278442756937613, 2074, 19278442756937612, 20571, 194697747222393, 193, 197062, 1, 197, 2061823
Offset: 1

Views

Author

Giovanni Resta, Dec 02 2019

Keywords

Comments

The final terms of the corresponding sequences are given in A330129.

Crossrefs

Cf. A330129 (corresponding last term), A121805, A139284, A366492.
For record high points see A367364 and A367365.

Programs

  • Mathematica
    nxt[x_] := Block[{p=1, n=x}, While[n >= 10, n = Floor[n/10]; p *= 10]; p (n + 1)]; a[n_] := Block[{nT=1, nX=n, w1, w2, w3, x, it, stp, oX}, stp = 100; w1 = w2 = w3 = 0; While[True, oX = nX; nT++; x = 10*Mod[oX, 10]; nX = SelectFirst[Range[9], IntegerDigits[oX + x + #][[1]] == # &, 0]; If[nX == 0, Break[], nX = nX + oX + x]; If[nT == stp, stp += 100; w1=w2; w2=w3; w3=nX; If[w3 + w1 == 2 w2 && Mod[w3 - w2, 100] == 0, it = Floor[(nxt[nX] - nX - 1)/(w3 - w2)]; nT += it*100; nX += (w3 - w2)*it; w3=nX; stp += it*100]]]; nT - 1]; Array[a, 30]
  • Python
    def nxt(x):
        p, n = 1, x
        while n >= 10:
            n //= 10
            p *= 10
        return p * (n + 1)
    def a(n):
        nT, nX, w1, w2, w3, stp  = 1, n, 0, 0, 0, 100
        while True:
            oX = nX
            nT += 1
            x = 10*(oX%10)
            nX = next((y for y in range(1, 10) if str(oX+x+y)[0] == str(y)), 0)
            if nX == 0: break
            else: nX += oX + x
            if nT == stp:
                stp += 100
                w1, w2, w3 = w2, w3, nX
                if w3 + w1 == 2*w2 and (w3 - w2)%100 == 0:
                    it = (nxt(nX) - nX - 1)//(w3 - w2)
                    nT += it*100
                    nX += (w3 - w2)*it
                    w3 = nX
                    stp += it*100
        return nT - 1
    print([a(n) for n in range(1, 30)]) # Michael S. Branicky, Nov 18 2023 after Giovanni Resta

Extensions

Escape clause added to definition by N. J. A. Sloane, Nov 14 2023