A048653 Numbers k such that the decimal digits of k^2 can be partitioned into two or more nonzero squares.
7, 12, 13, 19, 21, 35, 37, 38, 41, 44, 57, 65, 70, 107, 108, 112, 119, 120, 121, 125, 129, 130, 190, 191, 204, 205, 209, 210, 212, 223, 253, 285, 305, 306, 315, 342, 343, 345, 350, 369, 370, 379, 380, 408, 410, 413, 440, 441, 475, 487, 501, 538, 570, 642, 650
Offset: 1
Examples
12 is present because 12^2=144 can be partitioned into three squares 1, 4 and 4. 108^2 = 11664 = 1_16_64, 120^2 = 14400 = 1_4_400, so 108 and 120 are in the sequence.
Links
- Reinhard Zumkeller, Table of n, a(n) for n = 1..10000
Programs
-
Haskell
a048653 n = a048653_list !! (n-1) a048653_list = filter (f . show . (^ 2)) [1..] where f zs = g (init $ tail $ inits zs) (tail $ init $ tails zs) g (xs:xss) (ys:yss) | h xs = h ys || f ys || g xss yss | otherwise = g xss yss where h ds = head ds /= '0' && a010052 (read ds) == 1 g = False -- Reinhard Zumkeller, Oct 11 2011
-
Mathematica
(* This non-optimized program is not suitable to compute a large number of terms. *) split[digits_, pos_] := Module[{pos2}, pos2 = Transpose[{Join[ {1}, Most[pos+1]], pos}]; FromDigits[Take[digits, {#[[1]], #[[2]]}]]& /@ pos2]; sel[n_] := Module[{digits, ip, ip2, accu, nn}, digits = IntegerDigits[n^2]; ip = IntegerPartitions[Length[digits]]; ip2 = Flatten[ Permutations /@ ip, 1]; accu = Accumulate /@ ip2; nn = split[ digits, #]& /@ accu; SelectFirst[nn, Length[#]>1 && Flatten[ IntegerDigits[#] ] == digits && AllTrue[#, #>0 && IntegerQ[Sqrt[#]]&]&] ]; k = 1; Reap[Do[If[(s = sel[n]) != {}, Print["a(", k++, ") = ", n, " ", n^2, " ", s]; Sow[n]], {n, 1, 10^4}]][[2, 1]] (* Jean-François Alcover, Sep 28 2016 *)
-
Python
from math import isqrt def issquare(n): return isqrt(n)**2 == n def ok(n, c): if n%10 in {2, 3, 7, 8}: return False if issquare(n) and c > 1: return True d = str(n) for i in range(1, len(d)): if d[i] != '0' and issquare(int(d[:i])) and ok(int(d[i:]), c+1): return True return False def aupto(lim): return [r for r in range(lim+1) if ok(r*r, 1)] print(aupto(650)) # Michael S. Branicky, Jul 10 2021
Extensions
Corrected and extended by Naohiro Nomoto, Sep 01 2001
Definition clarified by Harvey P. Dale, May 09 2021