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.

A053610 Number of positive squares needed to sum to n using the greedy algorithm.

This page as a plain text file.
%I A053610 #54 Aug 04 2023 23:16:26
%S A053610 1,2,3,1,2,3,4,2,1,2,3,4,2,3,4,1,2,3,4,2,3,4,5,3,1,2,3,4,2,3,4,5,3,2,
%T A053610 3,1,2,3,4,2,3,4,5,3,2,3,4,5,1,2,3,4,2,3,4,5,3,2,3,4,5,3,4,1,2,3,4,2,
%U A053610 3,4,5,3,2,3,4,5,3,4,5,2,1,2,3,4,2,3,4,5,3,2,3,4,5,3,4,5,2,3,4,1,2,3,4
%N A053610 Number of positive squares needed to sum to n using the greedy algorithm.
%C A053610 Define f(n) = n - x^2 where (x+1)^2 > n >= x^2. a(n) = number of iterations in f(...f(f(n))...) to reach 0.
%C A053610 a(n) = 1 iff n is a perfect square.
%C A053610 Also sum of digits when writing n in base where place values are squares, cf. A007961. - _Reinhard Zumkeller_, May 08 2011
%C A053610 The sequence could have started with a(0)=0. - _Thomas Ordowski_, Jul 12 2014
%C A053610 The sequence is not bounded, see A006892. - _Thomas Ordowski_, Jul 13 2014
%H A053610 Reinhard Zumkeller, <a href="/A053610/b053610.txt">Table of n, a(n) for n = 1..10000</a>
%F A053610 a(n) = A007953(A007961(n)). - _Henry Bottomley_, Jun 01 2000
%F A053610 a(n) = a(n - floor(sqrt(n))^2) + 1 = a(A053186(n)) + 1 [with a(0) = 0]. - _Henry Bottomley_, May 16 2000
%F A053610 A053610 = A002828 + A062535. - _M. F. Hasler_, Dec 04 2008
%e A053610 7=4+1+1+1, so 7 requires 4 squares using the greedy algorithm, so a(7)=4.
%p A053610 A053610 := proc(n)
%p A053610     local a,x;
%p A053610     a := 0 ;
%p A053610     x := n ;
%p A053610     while x > 0 do
%p A053610         x := x-A048760(x) ;
%p A053610         a := a+1 ;
%p A053610     end do:
%p A053610     a ;
%p A053610 end proc: # _R. J. Mathar_, May 13 2016
%t A053610 f[n_] := (n - Floor[Sqrt[n]]^2); g[n_] := (m = n; c = 1; While[a = f[m]; a != 0, c++; m = a]; c); Table[ g[n], {n, 1, 105}]
%o A053610 (PARI) A053610(n,c=1)=while(n-=sqrtint(n)^2,c++);c \\ _M. F. Hasler_, Dec 04 2008
%o A053610 (Haskell)
%o A053610 a053610 n = s n $ reverse $ takeWhile (<= n) $ tail a000290_list where
%o A053610   s _ []                 = 0
%o A053610   s m (x:xs) | x > m     = s m xs
%o A053610              | otherwise = m' + s r xs where (m',r) = divMod m x
%o A053610 -- _Reinhard Zumkeller_, May 08 2011
%o A053610 (Python)
%o A053610 from math import isqrt
%o A053610 def A053610(n):
%o A053610     c = 0
%o A053610     while n:
%o A053610         n -= isqrt(n)**2
%o A053610         c += 1
%o A053610     return c # _Chai Wah Wu_, Aug 01 2023
%Y A053610 Cf. A006892 (positions of records), A055401, A007961.
%Y A053610 Cf. A000196, A000290, A057945 (summing triangular numbers).
%K A053610 nonn
%O A053610 1,2
%A A053610 _Jud McCranie_, Mar 19 2000