OFFSET
1,1
COMMENTS
Semiprime brothers are two consecutive semiprimes (A001358) whose prime factors are consecutive primes (A000040).
The first several examples of semiprime brothers are {9, 10}, {14, 15}, {21, 22}, {26, 33} & {403, 407}.
The only square term is 9 and the only even terms are 14 and 26.
Obviously the difference between the primepi of the factors of the two consecutive semiprimes is either {-1, 1} or {1, -1}.
Number of terms < 10^n: 1, 4, 5, 5, 10, 25, 62, 143, 319, 761, 2010, 5275, etc.
Only the first three terms have as the next semiprime the next integer making them twins. - Robert G. Wilson v, Jun 21 2018
LINKS
Jonathan Vos Post, Robert G. Wilson v, and Giovanni Resta, Table of n, a(n) for n = 1..5275 (terms < 10^12, terms > 10^10 from G. Resta)
EXAMPLE
26 is in the sequence because 26 = 2*13 and the next semiprime is 33 = 3*11 with 2 & 3 consecutive primes and 11 & 13 consecutive primes.
403 is in the sequence because 403 = 13*31 and the next semiprime is 407 = 11*37 with 11 & 13 and 31 & 37 being consecutive primes.
MATHEMATICA
p = q = 4; fp = fq = {1, 1}; lst = {}; While[p < 26000000, While[fq = Flatten[ Table[#1, {#2}] & @@@ FactorInteger@ q]; Length@ fq != 2, q++]; d = Sort[{fp, fq}]; If[ NextPrime[ d[[1, 1]]] == d[[2, 1]] && NextPrime[ d[[2, 2]]] == d[[1, 2]], AppendTo[lst, p]]; p = q; fp = fq; q++]; lst
PROG
(PARI) isok(p, q) = (nextprime(p+1) == q) || (nextprime(q+1) == p);
pairp(n) = if (issquare(n), vector(2, k, sqrtint(n)), (factor(n)[, 1])~);
lista(nn) = {na = 2; while (na < nn, if (bigomega(na) != 2, na++, nb = na + 1; while (bigomega(nb) != 2, nb++); fpa = pairp(na); fpb = pairp(nb); if (isok(fpa[1], fpb[1]) && isok(fpa[2], fpb[2]), print1(na, ", ")); na = nb; ); ); } \\ Michel Marcus, Jul 11 2017
(Python)
from sympy import factorint, nextprime
def is_semiprime(n):
return sum(e for e in factorint(n).values()) == 2
def next_semiprime(n):
nxt = n + 1
while not is_semiprime(nxt): nxt += 1
return nxt
def are_consecutive(p, q):
return max(p, q) == nextprime(min(p, q))
def ok(n):
if not is_semiprime(n): return False
nextsp = next_semiprime(n)
fn, fm = factorint(n, multiple=True), factorint(nextsp, multiple=True)
return are_consecutive(fn[0], fm[0]) and are_consecutive(fn[1], fm[1])
print(list(filter(ok, range(150000)))) # Michael S. Branicky, Sep 14 2021
CROSSREFS
KEYWORD
nonn
AUTHOR
Jonathan Vos Post and Robert G. Wilson v, Jul 07 2017
STATUS
approved