%I #10 May 06 2024 11:04:13
%S 15,45,630,25200,32004000,508031496000,128015872500032496000,
%T 3670698694547655407496988066168944000,
%U 10302657959650317880463349610273001290502485245258650172717840000
%N a(0) = 15; for n > 0, a(n) is the smallest triangular number which is a (proper) multiple of a(n-1).
%C Thanks to _Dean Hickerson_ for a very efficient program.
%H Chai Wah Wu, <a href="/A068513/b068513.txt">Table of n, a(n) for n = 0..10</a>
%t Needs[ NumberTheory`NumberTheoryFunctions`]; pm1[{k_}] := {1, k - 1}; pm1[lst_] := Module[{a, m, v}, a = lst[[1]]; m = Times @@ Rest[lst]; v = pm1[ Rest[lst]]; Union[ ChineseRemainder[{1, #}, {a, m}] & /@ v, ChineseRemainder[{-1, #}, {a, m}] & /@ v]]; nexttri[1] = 3; nexttri[n_] := Module[{s}, s = (pm1[Power @@ # & /@ FactorInteger[4n]]^2 - 1)/8; For[i = 1, True, i++, If[s[[i]] > n, Return[ s[[i]]] ]]]; a[0] = 15; a[n_] := a[n] = nexttri[ a[n - 1]]; Table[ a[n], {n, 0, 8}]
%o (Python)
%o from itertools import islice
%o from sympy import sqrt_mod_iter
%o def A068513_gen(): # generator of terms
%o a = 120
%o while True:
%o yield a>>3
%o b = a+1
%o for d in sqrt_mod_iter(1,a):
%o if d==1 or d**2-1 == a:
%o d += a
%o if d&1 and d < b:
%o b = d
%o a = b**2-1
%o A068513_list = list(islice(A068513_gen(),10)) # _Chai Wah Wu_, May 05 2024
%Y Cf. A068776, A068142.
%K nonn
%O 0,1
%A _Robert G. Wilson v_, Mar 19 2002