login
Number of distinct n-digit suffixes of base-10 squares not containing the digit 0.
3

%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