A064365 a(0) = 0; thereafter a(n) = a(n-1)-prime(n) if positive and new, otherwise a(n) = a(n-1)+prime(n), where prime(n) is the n-th prime.
0, 2, 5, 10, 3, 14, 1, 18, 37, 60, 31, 62, 25, 66, 23, 70, 17, 76, 15, 82, 11, 84, 163, 80, 169, 72, 173, 276, 383, 274, 161, 34, 165, 28, 167, 316, 467, 310, 147, 314, 141, 320, 139, 330, 137, 334, 135, 346, 123, 350, 121, 354, 115, 356, 105, 362, 99, 368, 97, 374, 93
Offset: 0
Examples
To find a(9) we try subtracting the 9th prime, which is 23, from a(8), which is 37. 37 - 23 = 14, but 14 is already in the sequence (it is a(5)), so we must add. a(9) = 37 + 23 = 60.
Links
Programs
-
Haskell
import Data.Set (singleton, notMember, insert) a064365 n = a064365_list !! n a064365_list = 0 : f 0 a000040_list (singleton 0) where f x (p:ps) s | x' > 0 && x' `notMember` s = x' : f x' ps (insert x' s) | otherwise = xp : f xp ps (insert xp s) where x' = x - p; xp = x + p -- Reinhard Zumkeller, Apr 26 2012
-
Mathematica
a = {0}; Do[ If[ a[ [ -1 ] ] - Prime[ n ] > 0 && Position[ a, a[ [ -1 ] ] - Prime[ n ] ] == {}, a = Append[ a, a[ [ -1 ] ] - Prime[ n ] ], a = Append[ a, a[ [ -1 ] ] + Prime[ n ] ] ], {n, 1, 70} ]; a (* Modified by Ivan N. Ianakiev, Aug 05 2019, to accommodate the new initial term of a(0). *)
-
PARI
A064365(N,s/*=1 to print all terms*/)={ my(a=0,u=0); N & forprime(p=1,prime(N), s & print1(a","); u=bitor(u,2^a+=if(a<=p || bittest(u,a-p),p,-p)));a} \\ M. F. Hasler, Mar 07 2012
-
Python
from sympy import primerange, prime def aupton(terms): alst = [0] for n, pn in enumerate(primerange(1, prime(terms)+1), start=1): x = alst[-1] - pn alst += [x if x > 0 and x not in alst else alst[-1] + pn] return alst print(aupton(60)) # Michael S. Branicky, May 30 2021
Formula
a(n) = A117128(n) - 1. - Thomas Ordowski, Dec 05 2016
Extensions
More terms from Robert G. Wilson v, Sep 26 2001
Further terms from N. J. A. Sloane, Feb 10 2002
Comments