OFFSET
0,2
LINKS
Chai Wah Wu, Table of n, a(n) for n = 0..13
EXAMPLE
a(2) = 6, since 6 = 2*a(1) and 6 is a triangular number.
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]=1; 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) {a068776(m)=local(k, q, n); k=1; 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 A068776_gen(): # generator of terms
a = 8
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
Klaus Brockhaus, Mar 01 2002
EXTENSIONS
Edited by Dean Hickerson, Mar 09 2002
STATUS
approved