Currently, the most efficient algorithm that classical computers can use to factor large composite numbers is the General Number Field Sieve (GNFS), which runs in subexponential time. It returns a set of primes that, when multiplied, yield the composite. Is there such an algorithm that will return the number of primes that a composite number is composed of without actually factoring it, that runs in polynomial time (or better)? Assuming the convention that one is not prime, if the input is already prime, the result will be one.
Actually, a semiprime with unknown prime factors was constructed with methods of elliptic curves.
Despite of this, in general, determining the repeated number of prime factors (often called big-omega) is not significantally easier than factoring , at least no such algorithm is currently known.
Checking for perfect powers and trial division can clarify things for small numbers, but only in very special cases, big-omega can be faster determined than the prime factorization.