A003312 a(1) = 3; for n>0, a(n+1) = a(n) + floor((a(n)-1)/2).
3, 4, 5, 7, 10, 14, 20, 29, 43, 64, 95, 142, 212, 317, 475, 712, 1067, 1600, 2399, 3598, 5396, 8093, 12139, 18208, 27311, 40966, 61448, 92171, 138256, 207383, 311074, 466610, 699914, 1049870, 1574804, 2362205, 3543307, 5314960, 7972439, 11958658, 17937986, 26906978
Offset: 1
Examples
The first few sieving stages are as follows: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 3 4 5 X 7 8 X 10 11 XX 13 14 XX 16 17 XX 19 20 ... 3 4 5 X 7 X X 10 11 XX XX 14 XX 16 XX XX 19 20 ... 3 4 5 X 7 X X 10 XX XX XX 14 XX 16 XX XX XX 20 ... 3 4 5 X 7 X X 10 XX XX XX 14 XX XX XX XX XX 20 ...
References
- Popular Computing (Calabasas, CA), Problem 43, Sieves, sieve #5, Vol. 2 (No. 13, Apr 1974), pp. 6-7; Vol. 2 (No. 17, Aug 1974), page 16; Vol. 5 (No. 51, Jun 1977), p. 17.
- N. J. A. Sloane and Simon Plouffe, The Encyclopedia of Integer Sequences, Academic Press, 1995 (includes this sequence).
Links
- N. J. A. Sloane, Table of n, a(n) for n = 1..1000 (first 500 terms from T. D. Noe)
- Popular Computing (Calabasas, CA), Sieves: Problem 43, Vol. 2 (No. 13, Apr 1974), pp. 6-7. This is Sieve #5. [Annotated and scanned copy]
- H. P. Robinson, C. L. Mallows, & N. J. A. SloaneCorrespondence, 1975
- Index entries for sequences generated by sieves
Programs
-
Haskell
a003312 n = a003312_list !! (n-1) a003312_list = sieve [3..] where sieve :: [Integer] -> [Integer] sieve (x:xs) = x : (sieve $ xOff xs) xOff :: [Integer] -> [Integer] xOff (x:x':_:xs) = x : x': (xOff xs) -- Reinhard Zumkeller, Feb 21 2011
-
Maple
f:=proc(n) option remember; if n=1 then RETURN(3) fi; f(n-1)+floor( (f(n-1)-1)/2 ); end;
-
Mathematica
NestList[#+Floor[(#-1)/2]&,3,50] (* Harvey P. Dale, Mar 18 2011 *)
-
PARI
v=vector(100); v[1]=3; for(n=2, #v, v[n]=floor((3*v[n-1]-1)/2)); v \\ Clark Kimberling, Dec 30 2010
-
Python
l=[0, 3] for n in range(2, 101): l.append(l[n - 1] + (l[n - 1] - 1)//2) print(l[1:]) # Indranil Ghosh, Jun 09 2017
-
Python
from itertools import islice def A003312_gen(): # generator of terms a = 3 while True: yield a a += a-1>>1 A003312_list = list(islice(A003312_gen(),30)) # Chai Wah Wu, Sep 21 2022
Extensions
Entry revised by N. J. A. Sloane, Dec 01 2004 and May 10 2015
Comments