login
The n-th squarefree number is the a(n)-th squarefree number having its number of primes.
4

%I #28 Aug 31 2024 12:30:57

%S 1,1,2,3,1,4,2,5,6,3,4,7,8,5,6,9,7,10,1,11,8,9,10,12,11,12,13,2,14,13,

%T 15,14,16,15,16,17,17,18,18,19,3,19,20,4,20,21,21,22,5,22,23,23,24,25,

%U 26,24,27,28,29,30,25,26,6,27,7,31,28,29,8,32,30,9

%N The n-th squarefree number is the a(n)-th squarefree number having its number of primes.

%C The sequence gives the column index of A005117(n) in the array A340316 and may be understood as a complementary addition to A072047 giving the row index.

%H David A. Corneth, <a href="/A340313/b340313.txt">Table of n, a(n) for n = 1..10000</a>

%H Alois P. Heinz, <a href="/A340313/a340313.jpg">Plot of n, a(n) for n = 1..1000000</a>

%F a(n) = #{x|x <= n, A072047(x) = A072047(n)}.

%e {x|x <= 6, A072047(x) = A072047(6) = 1} = {2,3,4,6}, therefore a(6) = 4.

%e {x|x <= 28, A072047(x) = A072047(28) = 3} = {19,28}, therefore a(28) = 2.

%p with(numtheory):

%p b:= proc(n) option remember; local k; if n=1 then 1 else

%p for k from 1+b(n-1) while not issqrfree(k) do od; k fi

%p end:

%p p:= proc() 0 end:

%p a:= proc(n) option remember; local h; a(n-1);

%p h:= bigomega(b(n)); p(h):= p(h)+1;

%p end: a(0):=0:

%p seq(a(n), n=1..100); # _Alois P. Heinz_, Jan 06 2021

%t b[n_] := b[n] = Module[{k}, If[n == 1, 1,

%t For[k = 1 + b[n - 1], !SquareFreeQ[k], k++]; k]];

%t p[_] = 0;

%t a[n_] := a[n] = Module[{h}, a[n - 1];

%t h = PrimeOmega[b[n]]; p[h] = p[h]+1];

%t a[0] = 0;

%t Table[a[n], {n, 1, 100}] (* _Jean-François Alcover_, Mar 28 2022, after _Alois P. Heinz_ *)

%o (Haskell)

%o a340313 n = a340313_list !! (n-1)

%o a340313_list = repetitions a072047_list

%o where

%o repetitions [] = []

%o repetitions (a:as) = 1 : h a as (repetitions as)

%o h _ [] _ = []

%o h b (c:cs) (r:rs) = (if c == b then succ else id) r : h b cs rs

%o (PARI) first(n) = {v = vector(5); n--; res = vector(n); t = 0; for(i = 2, oo, f = factor(i)[,2]; if(vecmax(f) == 1, if(#f > #v, v = concat(v, vector(#f - #v)) ); t++; v[#f]++; res[t] = v[#f]; if(t >= n, return(concat(1, res)) ) ) ) } \\ _David A. Corneth_, Jan 07 2021

%o (Python)

%o from math import isqrt, prod

%o from sympy import primerange, integer_nthroot, mobius, primenu, primepi

%o def A340313(n):

%o if n == 1: return 1

%o def g(x,a,b,c,m): yield from (((d,) for d in enumerate(primerange(b+1,isqrt(x//c)+1),a+1)) if m==2 else (((a2,b2),)+d for a2,b2 in enumerate(primerange(b+1,integer_nthroot(x//c,m)[0]+1),a+1) for d in g(x,a2,b2,c*b2,m-1)))

%o def f(x): return n+x-sum(mobius(k)*(x//k**2) for k in range(1, isqrt(x)+1))

%o def bisection(f,kmin=0,kmax=1):

%o while f(kmax) > kmax: kmax <<= 1

%o while kmax-kmin > 1:

%o kmid = kmax+kmin>>1

%o if f(kmid) <= kmid:

%o kmax = kmid

%o else:

%o kmin = kmid

%o return kmax

%o kmax = bisection(f)

%o return int(sum(primepi(kmax//prod(c[1] for c in a))-a[-1][0] for a in g(kmax,0,1,1,m)) if (m:=primenu(kmax)) > 1 else primepi(kmax)) # _Chai Wah Wu_, Aug 31 2024

%Y Cf. A001221, A001222, A005117 (squarefree numbers), A058933, A067003, A072047 (number of prime factors), A340316 (squarefree numbers array).

%K nonn

%O 1,3

%A _Peter Dolland_, Jan 04 2021