login
A068142
a(0) = 21; for n > 0, a(n) is the smallest triangular number which is a (proper) multiple of a(n-1).
3
21, 105, 210, 630, 25200, 32004000, 508031496000, 128015872500032496000, 3670698694547655407496988066168944000, 10302657959650317880463349610273001290502485245258650172717840000
OFFSET
0,1
LINKS
EXAMPLE
a(1) = 105, since 105 = 5*21 = 5*a(0), 105 is a triangular number and 2*a(0) = 42, 3*a(0) = 63, 4*a(0) = 84 are not triangular numbers.
MATHEMATICA
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]=21; a[n_] := a[n]=nexttri[a[n-1]]; (* First do <<NumberTheory`NumberTheoryFunctions`. If lst is a list of relatively prime integers >= 3, pm1[lst] is the list of numbers less than their product and == 1 or -1 (mod every element of lst). nexttri[n] is the smallest triangular number >n and divisible by n. *)
PROG
(PARI) {a068142(m)=local(k, q, n); k=6; q=k*(k+1)/2; while(q<m, n=q; print1(n, ", "); k++; q=q+k; while(q<m&&q%n>0, k++; q=q+k))}
(Python)
from itertools import islice
from sympy import sqrt_mod_iter
def A068142_gen(): # generator of terms
a = 168
while True:
yield a>>3
b = a+1
for d in sqrt_mod_iter(1, a):
if d==1 or d**2-1 == a:
d += a
if d&1 and d < b:
b = d
a = b**2-1
A068142_list = list(islice(A068142_gen(), 12)) # Chai Wah Wu, May 05 2024
CROSSREFS
Sequence in context: A201468 A306259 A069499 * A126229 A060537 A116689
KEYWORD
nonn
AUTHOR
Amarnath Murthy, Feb 22 2002
EXTENSIONS
Edited and extended by Klaus Brockhaus, Robert G. Wilson v, Mar 01 2002 and Dean Hickerson, Mar 09 2002
STATUS
approved