Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
A364929
a(0) = 0; for n > 0, if n appears in the sequence then a(n) is the product of the indices of all previous appearances of n. Otherwise a(n) = a(n-1) - n if nonnegative and not already in the sequence, otherwise a(n) = a(n-1) + n.
1
0, 1, 3, 2, 6, 11, 4, 11, 19, 10, 9, 35, 23, 36, 22, 7, 23, 40, 58, 8, 28, 49, 14, 192, 168, 143, 117, 90, 20, 49, 79, 48, 16, 49, 15, 11, 13, 50, 12, 51, 17, 58, 100, 57, 101, 56, 102, 55, 31, 20097, 37, 39, 91, 38, 92, 47, 45, 43, 738, 679, 619, 558, 496, 433, 369
OFFSET
0,3
LINKS
David A. Corneth, PARI program
EXAMPLE
a(2) = 3 = n, thus a(3) = 2.
a(5) = 11, as 5 has not previously appeared in the sequence, but a(4) - 5 = 1 has, thus a(5) = a(4) + 5 = 6 + 5 = 11.
a(5) and a(7) = 11, and 5 * 7 = 35, thus a(11) = 35.
PROG
(PARI) See PARI link
(Python)
from itertools import count, islice
def agen(): # generator of terms
an, p = 0, {0: 0} # data list, map of product of indices
for n in count(1):
yield an
an = p[n] if n in p else an+n if an-n < 0 or an-n in p else an-n
p[an] = p[an]*n if an in p else n
print(list(islice(agen(), 65))) # Michael S. Branicky, Dec 09 2023
CROSSREFS
KEYWORD
nonn
AUTHOR
Kelvin Voskuijl, Dec 05 2023
EXTENSIONS
More terms from David A. Corneth, Dec 09 2023
STATUS
approved