A078840 Table of n-almost-primes T(n,k) (n >= 0, k > 0), read by antidiagonals, starting at T(0,1)=1 followed by T(1,1)=2.
1, 2, 3, 4, 5, 6, 8, 7, 9, 12, 16, 11, 10, 18, 24, 32, 13, 14, 20, 36, 48, 64, 17, 15, 27, 40, 72, 96, 128, 19, 21, 28, 54, 80, 144, 192, 256, 23, 22, 30, 56, 108, 160, 288, 384, 512, 29, 25, 42, 60, 112, 216, 320, 576, 768, 1024, 31, 26, 44, 81, 120, 224, 432, 640, 1152
Offset: 0
Examples
Table begins: 1 - 2 3 5 7 11 13 17 19 23 29 ... - 4 6 9 10 14 15 21 22 25 26 ... - 8 12 18 20 27 28 30 42 44 45 ... - 16 24 36 40 54 56 60 81 84 88 ... - 32 48 72 80 108 112 120 162 168 176 ... - 64 96 144 160 216 224 240 324 336 352 ...
Links
- Robert G. Wilson v, Table of n, a(n) for n = 0..10011 (corrected by Ivan Neretin).
- Eric Weisstein's World of Mathematics, Almost Prime.
Crossrefs
T(1, k)=A000040(k), T(2, k)=A001358(k), T(3, k)=A014612(k), T(4, k)=A014613(k), T(5, k)=A014614(k), T(6, k)=A046306(k), T(7, k)=A046308(k), T(8, k)=A046310(k), T(9, k)=A046312(k), T(10, k)=A046314(k).
T(11, k)=A069272(k), T(12, k)=A069273(k), T(13, k)=A069274(k), T(14, k)=A069275(k), T(15, k)=A069276(k), T(16, k)=A069277(k), T(17, k)=A069278(k), T(18, k)=A069279(k), T(19, k)=A069280(k), T(20, k)=A069281(k).
T(k, 1)=A000079(k), T(k, 2)=A007283(k), T(k, 3)=A116453(k), T(k, k)=A101695(k), T(k, k+1)=A078841(k).
A091538 is this sequence with zeros inserted, making a square array.
Programs
-
Mathematica
AlmostPrimePi[k_Integer, n_] := Module[{a, i}, a[0] = 1; If[k == 1, PrimePi[n], Sum[PrimePi[n/Times @@ Prime[ Array[a, k - 1]]] - a[k - 1] + 1, Evaluate[ Sequence @@ Table[{a[i], a[i - 1], PrimePi[(n/Times @@ Prime[Array[a, i - 1]])^(1/(k - i + 1))]}, {i, k - 1}]] ]]]; (* Eric W. Weisstein, Feb 07 2006 *) AlmostPrime[k_, n_] := Block[{e = Floor[Log[2, n]+k], a, b}, a = 2^e; Do[b = 2^p; While[ AlmostPrimePi[k, a] < n, a = a + b]; a = a - b/2, {p, e, 0, -1}]; a + b/2]; Table[ AlmostPrime[k, n - k + 1], {n, 11}, {k, n}] // Flatten (* Robert G. Wilson v *) mx = 11; arr = NestList[Take[Union@Flatten@Outer[Times, #, primes], mx] &, primes = Prime@Range@mx, mx]; Prepend[Flatten@Table[arr[[k, n - k + 1]], {n, mx}, {k, n}], 1] (* Ivan Neretin, Apr 30 2016 *) (* The next code skips the initial 1. *) width = 15; (seq = Table[ Rest[NestList[1 + NestWhile[# + 1 &, #, ! PrimeOmega[#] == z &] &, 2^z, width - z + 1]] - 1, {z, width}]) // TableForm Flatten[Map[Reverse[Diagonal[Reverse[seq], -width + #]] &, Range[width]]] (* Peter J. C. Moses, Jun 05 2019 *) Grid[Table[Select[Range[200], PrimeOmega[#] == n &], {n, 0, 7}]] (* Clark Kimberling, Nov 17 2024 *)
-
PARI
T(n,k)=if(k<0,0,s=1; while(sum(i=1,s,if(bigomega(i)-n,0,1))
-
Python
from math import prod, isqrt from sympy import primerange, integer_nthroot, primepi, prime def A078840_T(n,k): if n == 1: return prime(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))) def f(x): return int(k-1+x-sum(primepi(x//prod(c[1] for c in a))-a[-1][0] for a in g(x,0,1,1,n))) kmin, kmax = 1,2 while f(kmax) >= kmax: kmax <<= 1 while True: kmid = kmax+kmin>>1 if f(kmid) < kmid: kmax = kmid else: kmin = kmid if kmax-kmin <= 1: break return kmax # Chai Wah Wu, Aug 23 2024
Extensions
Edited by Robert G. Wilson v, Feb 11 2006
Comments