def numPrimeFactors(nPrimes): n = 1 while True: pf = set(primeFactors(n)) if len(pf) == nPrimes: yield n n += 1
def pf(n, known = dict()): if n in known: return known[n] known[n] = list(primeFactors(n)) return [v for v in known[n]]
def hasNumPrimes(n, num): primes = set() for prime in primeFactors(n): primes.add(prime) if len(primes) > num: return False return len(primes) == num