output_description: Print the maximum number of times the operation can be applied.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
attempt: # coding: utf-8
  from math import sqrt
  
  
  def solve(*args: str) -> str:
      n = int(args[0])
  
      ret = 0
      i = 2
      sqrt_n = -int(-sqrt(n))
      P = [True] * (sqrt_n + 1)
      P[0] = False
      P[1] = False
  
      for i in range(2, len(P)):
          if P[i]:
              for j in range(i + i, len(P), i):
                  P[j] = False
  
      Q = []
      for p, is_prime in enumerate(P):
          if is_prime and n % p == 0:
              t = p
              while t <= n:
                  Q.append(t)
                  t *= p
      if not Q and 1 < n:
          Q.append(n)
  
      Q.sort()
      for q in Q:
          if n % q == 0:
              n //= q
              ret += 1
  
      for p, is_prime in enumerate(P):
          while is_prime and n % p == 0:
              n //= p
      if 1 < n:
          ret += 1
  
      return str(ret)
  
  
  if __name__ == "__main__":
      print(solve(*(open(0).read().splitlines())))
  
problem_description: Statement
  
  Given is a positive integer N. Consider repeatedly applying the operation
  below on N:
  
    * First, choose a positive integer z satisfying all of the conditions below:
      * z can be represented as z=p^e, where p is a prime number and e is a positive integer;
      * z divides N;
      * z is different from all integers chosen in previous operations.
    * Then, replace N with N/z.
  
  Find the maximum number of times the operation can be applied.
samples: [{"input": "24", "output": "3\n    \n\nWe can apply the operation three times by, for example, making the following\nchoices:\n\n  * Choose z=2 (=2^1). (Now we have N=12.)\n  * Choose z=3 (=3^1). (Now we have N=4.)\n  * Choose z=4 (=2^2). (Now we have N=1.)\n\n* * *"}, {"input": "1", "output": "0\n    \n\nWe cannot apply the operation at all.\n\n* * *"}, {"input": "64", "output": "3\n    \n\nWe can apply the operation three times by, for example, making the following\nchoices:\n\n  * Choose z=2 (=2^1). (Now we have N=32.)\n  * Choose z=4 (=2^2). (Now we have N=8.)\n  * Choose z=8 (=2^3). (Now we have N=1.)\n\n* * *"}, {"input": "1000000007", "output": "1\n    \n\nWe can apply the operation once by, for example, making the following choice:\n\n  * z=1000000007 (=1000000007^1). (Now we have N=1.)\n\n* * *"}, {"input": "997764507000", "output": "7"}]