Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).
%I #28 Mar 13 2023 15:40:43
%S 1,9,36,100,225,441,784,900,1225,1296,2025,3025,4356,6084,7056,8281,
%T 11025,14400,18496,23409,29241,32400,36100,41616,44100,53361,64009,
%U 76176,88209,90000,105625,108900,123201,142884,164836,189225,216225,246016,278784,298116
%N Perfect squares that are a product of two triangular numbers.
%C Includes (except for 0) A000537 and 3/2*x*(x+1) for x in A132596. - _Robert Israel_, Jan 16 2015
%H Alois P. Heinz, <a href="/A169835/b169835.txt">Table of n, a(n) for n = 1..1000</a>
%H Erich Friedman, <a href="https://erich-friedman.github.io/numbers.html">What's Special About This Number?</a> (See entry 7056.)
%p N:= 10^6: # to get all terms <= N
%p A:= select(issqr,{seq(seq(a*(a+1)*b*(b+1)/4,
%p b = a .. floor(sqrt(1/4+4*N/a/(a+1))-1/2)),a=1..floor(sqrt(4*N)))});
%p # if using Maple 11 or earlier, uncomment the next line
%p # sort(convert(A, list)); # _Robert Israel_, Jan 16 2015
%t M = 10^6; (* to get all terms <= M *)
%t A = Union[Select[Flatten[Table[Table[(1/4) a (a+1) b (b+1), {b, a, Floor[ Sqrt[1/4 + 4M/(a (a+1))] - 1/2]}], {a, 1, Floor[Sqrt[4M]]}]], IntegerQ[ Sqrt[#]]&]] (* _Jean-François Alcover_, Mar 09 2019, after _Robert Israel_ *)
%o (PARI) istriangular(n)=issquare(8*n+1) \\ now one can use ispolygonal(n, 3)
%o isok(n) = {if (issquare(n), fordiv(n, d, if (d > sqrtint(n), break); if (istriangular(d) && istriangular(n/d), return (1)););); return (0);} \\ _Michel Marcus_, Jul 24 2013
%o (Haskell)
%o a169835 n = a169835_list !! (n-1)
%o a169835_list = f [] (tail a000217_list) (tail a000290_list) where
%o f ts us'@(u:us) vs'@(v:vs)
%o | u <= v = f (u : ts) us vs'
%o | any p $ map (divMod v) ts = v : f ts us' vs
%o | otherwise = f ts us' vs
%o where p (q, r) = r == 0 && a010054 q == 1
%o -- _Reinhard Zumkeller_, Mar 03 2015
%o (Python)
%o from itertools import count, islice, takewhile
%o from sympy import divisors
%o from sympy.ntheory.primetest import is_square
%o def A169835_gen(): # generator of terms
%o return filter(lambda k:any(map(lambda d: is_square((d<<3)+1) and is_square((k//d<<3)+1), takewhile(lambda d:d**2<=k,divisors(k)))),(m**2 for m in count(0)))
%o A169835_list = list(islice(A169835_gen(),20)) # _Chai Wah Wu_, Mar 13 2023
%Y Superset of A000537. Cf. A000217, A132596, A169836.
%Y Cf. A000290, A010054.
%K nonn
%O 1,2
%A _R. J. Mathar_, May 30 2010
%E Corrected (missing terms inserted) by _R. J. Mathar_, Jun 04 2010