prog.sf 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/usr/bin/ruby
  2. # The number of n-almost primes less than or equal to 10^n, starting with a(0)=1.
  3. # https://oeis.org/A116430
  4. # Known terms:
  5. # 1, 4, 34, 247, 1712, 11185, 68963, 409849, 2367507, 13377156, 74342563, 407818620, 2214357712, 11926066887, 63809981451, 339576381990, 1799025041767
  6. # New terms:
  7. # a(17) = 9494920297227
  8. # a(18) = 49950199374227
  9. # a(19) = 262036734664892
  10. #`{
  11. # PARI/GP program:
  12. almost_prime_count(N, k) = if(k==1, return(primepi(N))); (f(m, p, k, j=0) = my(c=0, s=sqrtnint(N\m, k)); if(k==2, forprime(q=p, s, c += primepi(N\(m*q))-j; j += 1), forprime(q=p, s, c += f(m*q, q, k-1, j); j += 1)); c); f(1, 2, k);
  13. a(n) = if(n == 0, 1, almost_prime_count(10^n, n)); \\ ~~~~
  14. }
  15. #for n in (0..100) {
  16. for n in (0..100) {
  17. say [n, n.almost_prime_count(10**n)]
  18. }
  19. __END__
  20. [0, 1]
  21. [1, 4]
  22. [2, 34]
  23. [3, 247]
  24. [4, 1712]
  25. [5, 11185]
  26. [6, 68963]
  27. [7, 409849]
  28. [8, 2367507]
  29. [9, 13377156]
  30. [10, 74342563]
  31. [11, 407818620]
  32. [12, 2214357712]
  33. [13, 11926066887]
  34. [14, 63809981451]
  35. [15, 339576381990]
  36. [16, 1799025041767]
  37. [17, 9494920297227]
  38. [18, 49950199374227]
  39. [19, 262036734664892]