OFFSET
1,1
COMMENTS
The MAGMA program provided produces output with each interval delimited by the power of 2 that starts it.
All of these primes are a sparse subset of isolated primes (the only possible exception would be a twin prime that crosses the interval boundary, but none are known to occur).
In each interval XOR couples are produced by XORing a number in the interval with 2^i -2 where i is the index used in the interval definition. In recursively halved intervals, i is decremented each time down to i=2.
LINKS
Alois P. Heinz, Table of n, a(n) for n = 1..10000
EXAMPLE
In the interval (17 .. 31) i=4 the numbers are coupled symmetrically around the middle of the interval by XORing each with 2^i -2 where i=4 or 14.
|-------XOR 14-------|
| |--------------| |
| | |--------| | |
| | | |--| | | |
17 19 21 23 25 27 29 31
(17,31), (19,29) are prime XOR couples but the prime 23 has a composite couple (23,25).
23 is in the first half of the interval. XORing each number in the first half of the interval with 2^i -2 where i=3 or 6
|---XOR 6---|
| |---| |
17 19 21 23
(17,23) is a prime XOR couple and all primes in the interval have been coupled, therefore there are no primes with only composite couples in the interval (17 .. 31).
The first such prime occurs in the interval (65 ..127) and is 67
MAPLE
q:= (l, p, r)-> r-l=2 or not isprime(l+r-p) and
`if`((l+r)/2>p, q(l, p, (l+r)/2), q((l+r)/2, p, r)):
a:= proc(n) local p, l;
p:= `if`(n=1, 3, a(n-1));
do p:= nextprime(p);
l:= 2^ilog2(p);
if q(l, p, l+l) then break fi
od; a(n):=p
end:
seq(a(n), n=1..60); # Alois P. Heinz, Nov 13 2011
MATHEMATICA
q[l_, p_, r_] := r - l == 2 || ! PrimeQ[l + r - p] &&
If[(l + r)/2 > p, q[l, p, (l + r)/2], q[(l + r)/2, p, r]];
a[n_] := a[n] = Module[{p, l},
p = If[n == 1, 3, a[n - 1]]; While[True, p = NextPrime[p];
l = 2^(Length[IntegerDigits[p, 2]]-1); If[q[l, p, l+l], Break[]]]; p];
Table[a[n], {n, 1, 60}] (* Jean-François Alcover, Jul 11 2021, after Alois P. Heinz *)
PROG
(Magma)
XOR := func<a, b | Seqint([ (adigs[i] + bdigs[i]) mod 2 : i in [1..n]], 2)
where adigs := Intseq(a, 2, n)
where bdigs := Intseq(b, 2, n)
where n := 1 + Ilog2(Max([a, b, 1]))>;
for i:= 4 to 16 do
"****", i;
for j:= 2^(i) +1 to 2^(i+1) -1 by 2 do
sympair:=0;
for k:= 2 to i do
xornum:=2^k -2;
xorcouple:=XOR(j, xornum);
if (IsPrime(j) and IsPrime(xorcouple)) then sympair:=1;
end if;
end for;
if ((sympair eq 0) and IsPrime(j)) then j;
end if;
end for;
end for;
CROSSREFS
KEYWORD
nonn
AUTHOR
Brad Clardy, Nov 11 2011
STATUS
approved