OFFSET
1,1
LINKS
Chai Wah Wu, Table of n, a(n) for n = 1..482
EXAMPLE
a(2) - a(1) = 5 - 2 = 3, which is prime (a "1-almost prime");
a(3) - a(2) = 11 - 5 = 6 = 2*3, which is semiprime (2-almost prime).
PROG
(Python)
from itertools import count, islice
from math import prod, isqrt
from sympy import primerange, primepi, integer_nthroot, isprime
def almostprimepi(n, k):
if k==0: return int(n>=1)
def g(x, a, b, c, m): yield from (((d, ) for d in enumerate(primerange(b, isqrt(x//c)+1), a)) if m==2 else (((a2, b2), )+d for a2, b2 in enumerate(primerange(b, integer_nthroot(x//c, m)[0]+1), a) for d in g(x, a2, b2, c*b2, m-1)))
return int(sum(primepi(n//prod(c[1] for c in a))-a[-1][0] for a in g(n, 0, 1, 1, k)) if k>1 else primepi(n))
def A276591_gen(): # generator of terms
yield (a:=2)
def bisection(f, kmin=0, kmax=1):
while f(kmax) > kmax: kmax <<= 1
kmin = kmax >> 1
while kmax-kmin > 1:
kmid = kmax+kmin>>1
if f(kmid) <= kmid:
kmax = kmid
else:
kmin = kmid
return kmax
for i in count(1):
def f(x): return j+x-almostprimepi(x, i)
for j in count(1):
p = bisection(f, j, j)+a
if isprime(p):
yield (a:=p)
break
CROSSREFS
KEYWORD
nonn
AUTHOR
Zak Seidov, Nov 16 2016
EXTENSIONS
a(32)-a(33) from Jinyuan Wang, Jul 31 2021
STATUS
approved
