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: def solve():
      n = int(input())
  
      p = [2]
      A = 10000
      for L in range(3, A, 2):  # 2 以外の素数は奇数なので
          if all(L % L2 != 0 for L2 in p):  # すべての既存素数で割り切れなかったら素数
              p.append(L)
      z = []
      for i in p:
          for e in range(1, 20):
              if n % i**e == 0 and i**e not in z:
                  n /= i**e
                  z.append(i**e)
      if not z:
          z.append(n)
      return len(z)
  
  
  print(solve())
  
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"}]