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.

A068165 Smallest square formed from n by inserting zero or more decimal digits.

Original entry on oeis.org

1, 25, 36, 4, 25, 16, 576, 81, 9, 100, 121, 121, 1369, 144, 1156, 16, 1764, 1089, 169, 2025, 121, 225, 2304, 324, 25, 256, 2704, 289, 289, 2304, 361, 324, 3136, 324, 3025, 36, 3721, 3481, 1369, 400, 441, 4225, 4356, 144, 4225, 4096, 4761, 484, 49, 2500
Offset: 1

Views

Author

Amarnath Murthy, Feb 25 2002

Keywords

Comments

The digits may be added before, in the middle of, or after the digits of n.
If n is a square then a(n) = n. - Zak Seidov, Nov 13 2014

Examples

			Smallest square formed from 20 is 2025, by placing 25 on the right side. Smallest square formed from 33 is 3136, by inserting a 1 between 3's and placing a 6.
		

Crossrefs

A091873 gives square roots. Cf. A038690, A029944, A068164.

Programs

  • Maple
    A068165 := proc(n)
            local b,pdigs,plen,dmas,dmasdigs,i,j;
            for b from 1 do
                    pdigs := convert(b^2,base,10) ;
                    plen := nops(pdigs) ;
                    for dmas from 2^plen-1 to 0 by -1 do
                            dmasdigs := convert(dmas,base,2) ;
                            pdel := [] ;
                            for i from 1 to nops(dmasdigs) do
                                    if op(i,dmasdigs) = 1 then
                                            pdel := [op(pdel),op(i,pdigs)] ;
                                    end if;
                            end do:
                            if n = add(op(j,pdel)*10^(j-1),j=1..nops(pdel)) then
                                    return b^2;
                            end if;
                    end do:
            end do:
    end proc:
    seq(A068165(n),n=1..133) ; # R. J. Mathar, Nov 14 2014
  • Python
    from math import isqrt
    from itertools import count
    def dmo(n, t):
        if t < n: return False
        while n and t:
            if n%10 == t%10:
                n //= 10
            t //= 10
        return n == 0
    def a(n):
        return next(t for t in (i*i for i in count(isqrt(n))) if dmo(n, t))
    print([a(n) for n in range(1, 77)]) # Michael S. Branicky, Jan 21 2023

Extensions

Corrected and extended by Ray Chandler, Oct 11 2003