(PARI) a(n)=sum(i=1, 3^n, if(bigomega(i)-n, 0, 1))
(PARI)
{ appi(k, n, m=2) = local(r=0);
if(k==0, return(1));
if(k==1, return(primepi(n)));
forprime(p=m, floor(sqrtn(n, k)+1e-20),
r+=appi(k-1, n\p, p)-(k==2)*(primepi(p)-1));
r }
{ appi3(k, n) = appi(k, n) - if(k>=1, appi(k-1, n\3)) }
a=1; for(n=1, 50, k=ceil(n*log(5/3)/log(5/2)); a+=appi3(n-k, 3^n\2^k); print1(a, ", "))
(Python)
from math import isqrt, prod
from sympy import primerange, integer_nthroot, primepi
def almostprimepi(n, k):
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))
return almostprimepi(3**n, n) if n else 1 #
Chai Wah Wu, Sep 01 2024