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.
%I A232178 #13 Sep 15 2017 03:20:00 %S A232178 0,0,1,-1,-1,1,2,6,0,2,3,-1,-1,3,4,1,15,4,5,-1,-1,5,6,20,10,6,7,-1,-1, %T A232178 7,8,27,1,8,9,-1,-1,9,10,2,36,10,11,-1,-1,11,12,41,7,0,13,-1,-1,13,6, %U A232178 24,2,14,15,-1,-1,15,16,3,6,8,17,-1,-1,17,18,62,64,18,19 %N A232178 Least k>=0 such that triangular(n) + k^2 is a square, or -1 if no such k exists. %C A232178 Triangular(n) = n*(n+1)/2. %H A232178 Chai Wah Wu, <a href="/A232178/b232178.txt">Table of n, a(n) for n = 0..10000</a> %e A232178 a(7) = 6 because the least k such that triangular(n) + k^2 is a square is k=6: 7*(7+1)/2 + 6^2 = 28+36 = 64 = 8^2. %t A232178 Join[{0}, Table[k = 0; While[k < n && ! IntegerQ[Sqrt[n*(n + 1)/2 + k^2]], k++]; If[k == n, k = -1]; k, {n, 100}]] (* _T. D. Noe_, Nov 21 2013 *) %o A232178 (Python) %o A232178 from __future__ import division %o A232178 from sympy import divisors %o A232178 def A232178(n): %o A232178 if n == 0: %o A232178 return 0 %o A232178 t = n*(n+1)//2 %o A232178 ds = divisors(t) %o A232178 l, m = divmod(len(ds),2) %o A232178 if m: %o A232178 return 0 %o A232178 for i in range(l-1,-1,-1): %o A232178 x = ds[i] %o A232178 y = t//x %o A232178 a, b = divmod(y-x,2) %o A232178 if not b: %o A232178 return a %o A232178 return -1 # _Chai Wah Wu_, Sep 12 2017 %Y A232178 Cf. A000217, A000290. %Y A232178 Cf. A082183 (least k>0 such that triangular(n) + triangular(k) is a triangular number). %Y A232178 Cf. A232177 (least k>0 such that triangular(n) + triangular(k) is a square). %Y A232178 Cf. A232176 (least k>0 such that n^2 + triangular(k) is a square). %Y A232178 Cf. A232179 (least k>=0 such that n^2 + triangular(k) is a triangular number). %Y A232178 Cf. A101157 (least k>0 such that triangular(n) + k^2 is a triangular number). %K A232178 sign %O A232178 0,7 %A A232178 _Alex Ratushnyak_, Nov 20 2013