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.

A023109 a(0) = 0. For n > 0, smallest non-palindromic number k such that the smallest palindrome in the Reverse and Add! trajectory of k is reached after exactly n iterations.

Original entry on oeis.org

0, 10, 19, 59, 69, 166, 79, 188, 193, 1397, 829, 167, 2069, 1797, 849, 177, 1496, 739, 1798, 10777, 6999, 1297, 869, 187, 89, 10797, 10853, 10921, 10971, 13297, 10548, 13293, 17793, 20889, 700269, 106977, 108933, 80359, 13697, 10794, 15891, 1009227, 1007619, 1009246, 1008628, 600259, 131996, 70759, 1007377, 1001699, 600279, 141996, 70269, 10677, 10833, 10911
Offset: 0

Views

Author

Keywords

Comments

From Felix Fröhlich, May 28 2022: (Start)
Variant of A015994 not allowing palindromes as starting values.
Smallest non-palindromic k such that A033665(k) = n. (End)

Crossrefs

Programs

  • Mathematica
    Table[ SelectFirst[Range[0, 20000], (np = #; i = 0;
        While[ ! PalindromeQ[np] && i <= n, np = np + IntegerReverse[np];
         i++]; i == n ) &] , {n, 0, 32}] (* Robert Price, Oct 16 2019 *)
  • PARI
    rev(n)={d=digits(n);p="";for(i=1,#d,p=concat(Str(d[i]),p));return(eval(p))}
    nbs(n)=if(n==rev(n),return(0));for(k=1,10^3,i=n+rev(n);if(rev(i)==i,return(k));n=i) \\ A033665
    a(n)=for(k=1,10^8,if(nbs(k)==n,return(k)))
    n=0;while(n<100,print1(a(n),", ");n++) \\ Derek Orr, Jul 28 2014
    
  • PARI
    revadd(n) = n+eval(concat(Vecrev(Str(n))))
    iterationstosmallestpalindrome(n, bound) = my(x=n, i=0, d); while(1, if(i > bound, return(-1)); x=revadd(x); i++; d=digits(x); if(d==Vecrev(d), return(i)))
    a(n) = if(n==0, return(0)); for(k=1, oo, my(d=digits(k)); if(d!=Vecrev(d), if(iterationstosmallestpalindrome(k, n)==n, return(k)))) \\ Felix Fröhlich, May 28 2022
  • Python
    def A023109(n):
        if n > 0:
            k = 0
            while True:
                m = k
                for i in range(n):
                    if str(m) == str(m)[::-1]:
                        break
                    m += int(str(m)[::-1])
                else:
                    if str(m) == str(m)[::-1]:
                        return k
                k += 1
        else:
            return 0
    # Chai Wah Wu, Feb 08 2015
    

Extensions

a(41)-a(55) verified and added by Aldo González Lorenzo, May 15 2011
Name edited by Felix Fröhlich, May 28 2022