%I #36 Jan 26 2022 07:26:06
%S 5,18,119,698,5449,41735,359207,3085197,27434602,243921771,2188569304,
%T 19636586858
%N Number of distinct n-digit suffixes of base-10 squares not containing the digit 0.
%H Josiah H. Drummond, <a href="https://www.jstor.org/stable/2970900">Problem 57</a>, Amer. Math. Monthly, Vol. 5 (1898), p. 26; reprinted on p. 906 of Vol. 105 (1998).
%e Any square ends with one of [ 0 ], 1, 4, 5, 6, 9, so a(1) = 5.
%e a(3) = A000993(3) - a(2) - #{100, 104, 201, 204, 209, 304, 400, 401, 404, 409, 500, 504, 600, 601, 604, 609, 704, 801, 804, 809, 900, 904} = 159 - 18 - 22 = 119, cf. A122986. - _Reinhard Zumkeller_, Mar 21 2010
%t (* A partly empirical script *) a[n_] := (Clear[qr]; qr[_] = False; For[k = 1, k <= 10^n/4, k++, m = PowerMod[k, 2, 10^n]; If[m > 10^(n-1) && FreeQ[IntegerDigits[m], 0], qr[m] = True]]; For[cnt = 0; k = 10^(n-1)+1, k <= 10^n-1, k++, If[qr[k], cnt++]]; cnt); a[1] = 5; Table[an = a[n]; Print["a(", n, ") = ", an]; an, {n, 1, 10}] (* _Jean-François Alcover_, Jul 31 2015 *)
%o (Python)
%o from math import isqrt
%o def a(n):
%o suffixes = set()
%o for k in range(isqrt(10 ** (n - 1)) + 1, 10 ** n):
%o kk = k * k
%o s = str(kk)[-n:]
%o if "0" not in s and len(s) >= n:
%o suffixes.add(s)
%o return len(suffixes)
%o print([a(n) for n in range(1, 8)]) # _Michael S. Branicky_, May 18 2021
%Y Cf. A036788.
%K base,nonn,nice,more
%O 1,1
%A _R. K. Guy_
%E Explanation and more terms from _David W. Wilson_
%E a(11)-a(12) from _Bert Dobbelaere_, Mar 10 2021