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.

A260726 a(n) = smallest palindrome k > n such that k/n is a square; a(n) = 0 if no solution exists.

Original entry on oeis.org

4, 8, 363, 484, 5445, 46464, 252, 2138312, 12321, 0, 44, 23232, 31213, 686, 53187678135, 44944, 272, 24642, 171, 0, 525, 88, 575, 46464, 5221225, 62426, 36963, 252, 464, 0, 1783799973871, 291080192, 2112, 4114, 53235, 69696, 333, 20102, 93639, 0, 656, 858858
Offset: 1

Views

Author

Pieter Post, Jul 30 2015

Keywords

Comments

If n is a multiple of 10 then a(n) = 0, since no palindrome ends in 0.
Up to 200 only 3 terms are currently unknown, a(125) > 5.2*10^28, a(177) > 3.5*10^27 and a(185) > 4.5*10^27. See Links for a table of known values. - Giovanni Resta, Aug 05 2015
If a(125) > 0, then the first 3 digits of a(125) are 521 and the last 3 digits of a(125) are 125. Proof: Let m^2 = a(125)/125. Then m is odd as otherwise 125*m^2 is a multiple of 10 which is not a palindrome. Since m is odd, m^2 == 1 mod 8 and thus 125*m^2 == 125 mod 1000. - Chai Wah Wu, Mar 31 2016

Examples

			a(3) = 363, because 363/3 = 11^2. 363 * 3 = 1089, which is also a square.
a(15) = 53187678135, because 53187678135/15 = 59547^2 and 53187678135 * 15 = 893205^2.
		

Crossrefs

Programs

  • Maple
    ispali:= proc(n) local L; L:= convert(n,base,10); ListTools:-Reverse(L)=L end proc:
    f:= proc(n) local m;
       if n mod 10 = 0 then return 0 fi;
       for m from 2 to 10^6 do if ispali(m^2*n) then return m^2*n fi od:
       -1  # signals time-out
    end proc:
    seq(f(n), n=1..50); # Robert Israel, Aug 21 2015
  • Mathematica
    palQ[n_] := Block[{d = IntegerDigits@ n}, d == Reverse@ d]; a[n_] := If[ Mod[n, 10] == 0, 0, Block[{q = 2}, While[! palQ[q^2 * n], q++]; q^2 * n]]; Array[a, 42] (* Giovanni Resta, Aug 18 2015 *)
  • Python
    def a(n):
        if n % 10 == 0: return 0
        for c in range(2, 10**8):
            k = str(n * c**2)
            if k == k[::-1]:
                return int(k)
        return -1
    print(*[a(n) for n in range(1, 43)], sep=', ')
    # Corrected by David Radcliffe, May 10 2025

Extensions

Missing a(13) from Giovanni Resta, Aug 05 2015