code: def test_primenu():
      assert primenu(2) == 1
      assert primenu(2 * 3) == 2
      assert primenu(2 * 3 * 5) == 3
      assert primenu(3 * 25) == primenu(3) + primenu(25)
      assert [primenu(p) for p in primerange(1, 10)] == [1, 1, 1, 1]
      assert primenu(fac(50)) == 15
      assert primenu(2**9941 - 1) == 1
      n = Symbol("n", integer=True)
      assert primenu(n)
      assert primenu(n).subs(n, 2**31 - 1) == 1
      assert summation(primenu(n), (n, 2, 30)) == 43
  
imports: from sympy.concrete.summations import summation
  from sympy.core.containers import Dict
  from sympy.core.mul import Mul
  from sympy.core.power import Pow
  from sympy.core.singleton import S
  from sympy.core.symbol import Symbol
  from sympy.functions.combinatorial.factorials import factorial
  from sympy.core.numbers import Integer, Rational
  from sympy.external.gmpy import gcd
  from sympy.ntheory import totient, factorint, primefactors, divisors, nextprime, primerange, pollard_rho, perfect_power, multiplicity, multiplicity_in_factorial, divisor_count, primorial, pollard_pm1, divisor_sigma, factorrat, reduced_totient
  from sympy.ntheory.factor_ import smoothness, smoothness_p, proper_divisors, antidivisors, antidivisor_count, core, udivisors, udivisor_sigma, udivisor_count, proper_divisor_count, primenu, primeomega, mersenne_prime_exponent, is_perfect, is_abundant, is_deficient, is_amicable, dra, drm, _perfect_power
  from sympy.testing.pytest import raises, slow
  from sympy.utilities.iterables import capture
label_desc: Use image node_id 28 for calling a global function with example usage: test_primenu() without return types