prog.gp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. \\ PARI/GP program for efficiently computing terms of the following OEIS sequences:
  2. \\ https://oeis.org/A082997
  3. \\ https://oeis.org/A082998
  4. \\ Execute as: gp -f prog.gp
  5. \\ Author: Daniel Suteu, Jul 21 2021
  6. omega_prime_count(n, k = 2, m = 1, p = 2, s = sqrtnint(n\m, k), j = 1) = {
  7. my(count = 0);
  8. if (k==2,
  9. while(p <= s,
  10. my(r = nextprime(p+1)); my(t = m*p);
  11. while (t <= n,
  12. my(w = n\t); if(r > w, break); count += primepi(w) - j; my(r2 = r);
  13. while(r2 <= w,
  14. my(u = t*r2*r2); if(u > n, break);
  15. while (u <= n, count += 1; u *= r2);
  16. r2 = nextprime(r2+1)
  17. );
  18. t *= p
  19. );
  20. p = r; j += 1
  21. );
  22. return(count)
  23. );
  24. while(p <= s, my(r = nextprime(p+1)); my(t = m*p);
  25. while(t <= n,
  26. my(s = sqrtnint(n\t, k-1));
  27. if(r > s, break);
  28. count += omega_prime_count(n, k-1, t, r, s, j+1); t *= p
  29. );
  30. p = r; j += 1
  31. );
  32. count;
  33. };
  34. print("A082997: ", vector(100, n, omega_prime_count(n, 2)))
  35. print("A082998: ", vector(100, n, omega_prime_count(n, 3)))