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: N = int(input())
  x = 0
  a = []
  for i in range(2, N + 1):
      b = 1
      l = len(a)
      for j in range(l):
          if (i % a[j]) == 0:
              b = 0
      a.append(i)
      if b == 1:
          i2 = i
          if N == 1:
              break
          while N % i2 == 0 & N != 1:
              N //= i2
              x += 1
              i2 *= i2
          i += 1
      else:
          continue
  print(x)
  
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"}]