login

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”).

A085780
Numbers that are a product of 2 triangular numbers.
17
0, 1, 3, 6, 9, 10, 15, 18, 21, 28, 30, 36, 45, 55, 60, 63, 66, 78, 84, 90, 91, 100, 105, 108, 120, 126, 135, 136, 150, 153, 165, 168, 171, 190, 198, 210, 216, 225, 231, 234, 253, 270, 273, 276, 280, 300, 315, 325, 330, 351, 360, 378, 396, 406, 408, 420, 435, 441
OFFSET
1,3
COMMENTS
Is there a fast algorithm for detecting these numbers? - Charles R Greathouse IV, Jan 26 2013
The number of rectangles with positive width 1<=w<=i and positive height 1<=h<=j contained in an i*j rectangle is t(i)*t(j), where t(k)=A000217(k), see A096948. - Dimitri Boscainos, Aug 27 2015
FORMULA
Conjecture: There are about sqrt(x)*log(x) terms up to x. - Charles R Greathouse IV, Jul 11 2024
EXAMPLE
18 = 3*6 = t(2)*t(3) is a product of two triangular numbers and therefore in the sequence.
MAPLE
isA085780 := proc(n)
local d;
for d in numtheory[divisors](n) do
if d^2 > n then
return false;
end if;
if isA000217(d) then
if isA000217(n/d) then
return true;
end if;
end if;
end do:
return false;
end proc:
for n from 1 to 1000 do
if isA085780(n) then
printf("%d, ", n) ;
end if ;
end do: # R. J. Mathar, Nov 29 2015
MATHEMATICA
t1 = Table[n (n+1)/2, {n, 0, 100}]; Select[Union[Flatten[Outer[Times, t1, t1]]], # <= t1[[-1]] &] (* T. D. Noe, Jun 04 2012 *)
PROG
(PARI) A003056(n)=(sqrtint(8*n+1)-1)\2
list(lim)=my(v=List([0]), t); for(a=1, A003056(lim\1), t=a*(a+1)/2; for(b=a, A003056(lim\t), listput(v, t*b*(b+1)/2))); vecsort(Vec(v), , 8) \\ Charles R Greathouse IV, Jan 26 2013
(Python)
from itertools import count, islice
from sympy import divisors, integer_nthroot
def A085780_gen(startvalue=0): # generator of terms
if startvalue <= 0:
yield 0
for n in count(max(startvalue, 1)):
for d in divisors(m:=n<<2):
if d**2 > m:
break
if integer_nthroot((d<<2)+1, 2)[1] and integer_nthroot((m//d<<2)+1, 2)[1]:
yield n
break
A085780_list = list(islice(A085780_gen(), 10)) # Chai Wah Wu, Aug 28 2022
CROSSREFS
Cf. A000217, A085782, A068143, A000537 (subsequence), A006011 (subsequence), A033487 (subsequence), A188630 (subsequence).
Cf. A072389 (this times 4).
Sequence in context: A274428 A344158 A085782 * A166047 A310141 A348550
KEYWORD
nonn
AUTHOR
Jon Perry, Jul 23 2003
EXTENSIONS
More terms from Max Alekseyev and Jon E. Schoenfield, Sep 04 2009
STATUS
approved