A059459 a(1) = 2; a(n+1) is obtained by writing a(n) in binary and trying to complement just one bit, starting with the least significant bit, until a new prime is reached.
2, 3, 7, 5, 13, 29, 31, 23, 19, 17, 8209, 8273, 10321, 2129, 2131, 83, 67, 71, 79, 1103, 1039, 1031, 1063, 1061, 1069, 263213, 263209, 263201, 265249, 265313, 264289, 280673, 280681, 280697, 280699, 280703, 280639, 280607, 280603, 280859, 280843, 281867, 265483, 265547, 265579, 265571, 266083, 266081, 266089, 266093, 266029
Offset: 1
Links
- Charles R Greathouse IV, Table of n, a(n) for n = 1..129 (first 104 terms from T. D. Noe)
- Chris K. Caldwell, Prime Links + +.
- W. Paulsen, The Prime Number Maze, Web Pages.
- W. Paulsen, The Prime Number Maze, Fib. Quart., 40 (2002), 272-279.
- Carlos Rivera, Problem 25.- William Paulsen's Prime Numbers Maze, The Prime Puzzles and Problems Connection.
Crossrefs
Programs
-
Maple
A059459search := proc(a,upto_bit,upto_length) local i,n,t; if(nops(a) >= upto_length) then RETURN(a); fi; t := a[nops(a)]; for i from 0 to upto_bit do n := XORnos(t,(2^i)); if(isprime(n) and (not member(n,a))) then print([op(a), n]); RETURN(A059459search([op(a), n],upto_bit,upto_length)); fi; od; RETURN([op(a),`and no more`]); end; E.g., call as: A059459search([2],128,200);
-
Mathematica
maxBits = 2^11; ClearAll[a]; a[1] = 2; a[n_] := a[n] = If[ PrimeQ[ a[n-1] ], bits = PadLeft[ IntegerDigits[ a[n-1], 2], maxBits]; For[i = 1, i <= maxBits, i++, bits2 = bits; bits2[[-i]] = 1 - bits[[-i]]; If[ i == maxBits, Print[ "maxBits reached" ]; Break[], If[ PrimeQ[an = FromDigits[ bits2, 2]] && FreeQ[ Table[ a[k], {k, 1, n-1}], an], Return[an] ] ] ], 0]; Table[ a[n], {n, 129}] (* Jean-François Alcover, Jan 17 2012 *) f[lst_List] := Block[{db2 = IntegerDigits[lst[[-1]], 2]}, exp = Length@ db2; While[pp = db2; pp[[exp]] = If[OddQ@db2[[exp]], 0, 1]; pp = FromDigits[pp, 2]; !PrimeQ[pp] || MemberQ[lst, pp], exp--; If[exp == 0, exp++; PrependTo[db2, 0]]]; Append[lst, pp]]; Nest[f, {2}, 128] (* Robert G. Wilson v, Jul 17 2017 *)
-
PARI
step(n)=my(k,t); while(vecsearch(v, t=bitxor(n,1<
Charles R Greathouse IV, Jan 02 2014 -
Python
from sympy import isprime from itertools import islice def agen(): seen, cand = set(), 2 while True: an = cand; bit = 1; seen.add(an); yield an while cand in seen or not isprime(cand): cand = an-bit if an&bit else an+bit bit <<= 1 print(list(islice(agen(), 51))) # Michael S. Branicky, Oct 01 2022
Extensions
More terms and Maple program from Antti Karttunen, Feb 03 2001, who remarks that he was able to extend the sequence to the 104th term 151115727453207491916143 using the bit-flip-limit 128.
Comments