OFFSET
0,1
LINKS
Chai Wah Wu, Table of n, a(n) for n = 0..11
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
CROSSREFS
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