OFFSET
1,1
COMMENTS
When a square starts and ends with digits dd, then dd is necessarily 44.
The last 2 digits of terms are either 12, 38, 62 or 88.
From Marius A. Burtea, Nov 09 2021 : (Start)
The sequence is infinite because the numbers 212, 2112, 21112, ..., (19*10^k + 8) / 9, k >= 3, are terms because the remainder when dividing by 1000 is 544 and 445*10^(2*k - 2) < ((19*10^k + 8) / 9)^2 < 447*10^(2*k - 2), k >= 3.
Also 6638, 66338, 663338, 6633338, 66333338, 663333338, 6633333338, ..., (199*10^k + 14) / 3, k >= 2, are terms and have no digits 0, because their squares are: 44063044, 4400730244, 4400730244, 440017302244, 44001173022244, 4400111730222244, 440011117302222244, ... (End)
EXAMPLE
212 is a term since 212^2 = 44944.
662 is not a term since 662^2 = 438244.
668 is not a term since 668^2 = 446224.
2108 is not a term since 2108^2 = 4443664.
21038 is not a term since 21038^2 = 442597444.
21088 is not a term since 21088^2 = 444703744.
MATHEMATICA
Select[Range[10, 300000], (d = IntegerDigits[#^2])[[1 ;; 2]] == d[[-2 ;; -1]] == {4, 4} && d[[-3]] != 4 && d[[3]] != 4 &] (* Amiram Eldar, Nov 08 2021 *)
PROG
(Magma) fd:=func<n|Seqint(Intseq(n*n)) mod 100 eq 44 and Seqint(Intseq(n*n)) mod 1000 ne 444>; fs:=func<n|Seqint(Reverse(Intseq(n*n))) mod 100 eq 44 and Seqint(Reverse(Intseq(n*n))) mod 1000 ne 444>; [n:n in [1..210000]|fd(n) and fs(n)]; // Marius A. Burtea, Nov 08 2021
(Python)
from itertools import count, takewhile
def ok(n):
s = str(n*n); return len(s.rstrip("4")) == len(s.lstrip("4")) == len(s)-2
def aupto(N):
ends = [12, 38, 62, 88]
r = takewhile(lambda x: x<=N, (100*i+d for i in count(0) for d in ends))
return [k for k in r if ok(k)]
print(aupto(209788)) # Michael S. Branicky, Nov 08 2021
CROSSREFS
KEYWORD
nonn,base
AUTHOR
Bernard Schott, Nov 08 2021
STATUS
approved