n=int(eval(input()))

count=0

def make_divisors(n):

    lower_divisors , upper_divisors = [], []

    i = 1

    while i*i <= n:

        if n % i == 0:

            lower_divisors.append(i)

            if i != n // i:

                upper_divisors.append(n//i)

        i += 1

    return lower_divisors + upper_divisors[::-1]

def factorization(n):

    arr = []

    temp = n

    for i in range(2, int(-(-n**0.5//1))+1):

        if temp%i==0:

            cnt=0

            while temp%i==0:

                cnt+=1

                temp //= i

            arr.append([i, cnt])



    if temp!=1:

        arr.append([temp, 1])



    if arr==[]:

        arr.append([n, 1])

    return arr

  

for i in make_divisors(n):

  if int(n)!=n or n==1:

    break

  if n%i==0 and len(factorization(i))==1:

    n=n/i

    count+=1

if count-1>=0:

  print((count-1))

else:

  print((0))

  
from collections import Counter

n=int(eval(input()))

def soin(n):

  soin_ans=[]

  while n%2==0:

    n//=2

    soin_ans.append(2)

  f=3

  while f<=n**0.5:

    if n%f==0:

      n//=f

      soin_ans.append(f)

    else:

      f+=2

  if n!=1:

    soin_ans.append(n)

  return soin_ans

s_list=soin(n)

s_set=set(s_list)

sc=Counter(s_list)

count=0

for i in s_set:

  for j in range(1,sc[i]+1):

    if n%i**j==0:

      n//=i**j

      count+=1

print(count)
n = int(eval(input()))
count = 0


def make_divisors(n):
    lower_divisors, upper_divisors = [], []
    i = 1
    while i * i <= n:
        if n % i == 0:
            lower_divisors.append(i)
            if i != n // i:
                upper_divisors.append(n // i)
        i += 1
    return lower_divisors + upper_divisors[::-1]


def factorization(n):
    arr = []
    temp = n
    for i in range(2, int(-(-(n**0.5) // 1)) + 1):
        if temp % i == 0:
            cnt = 0
            while temp % i == 0:
                cnt += 1
                temp //= i
            arr.append([i, cnt])
    if temp != 1:
        arr.append([temp, 1])
    if arr == []:
        arr.append([n, 1])
    return arr


for i in make_divisors(n):
    if int(n) != n or n == 1:
        break
    if n % i == 0 and len(factorization(i)) == 1:
        n = n / i
        count += 1
if count - 1 >= 0:
    print((count - 1))
else:
    print((0))

from collections import Counter

n = int(eval(input()))


def soin(n):
    soin_ans = []
    while n % 2 == 0:
        n //= 2
        soin_ans.append(2)
    f = 3
    while f <= n**0.5:
        if n % f == 0:
            n //= f
            soin_ans.append(f)
        else:
            f += 2
    if n != 1:
        soin_ans.append(n)
    return soin_ans


s_list = soin(n)
s_set = set(s_list)
sc = Counter(s_list)
count = 0
for i in s_set:
    for j in range(1, sc[i] + 1):
        if n % i**j == 0:
            n //= i**j
            count += 1
print(count)

+from collections import Counter + -count = 0 -def make_divisors(n): -    lower_divisors, upper_divisors = [], [] -    i = 1 -    while i * i <= n: -        if n % i == 0: -            lower_divisors.append(i) -            if i != n // i: -                upper_divisors.append(n // i) -        i += 1 -    return lower_divisors + upper_divisors[::-1] +def soin(n): +    soin_ans = [] +    while n % 2 == 0: +        n //= 2 +        soin_ans.append(2) +    f = 3 +    while f <= n**0.5: +        if n % f == 0: +            n //= f +            soin_ans.append(f) +        else: +            f += 2 +    if n != 1: +        soin_ans.append(n) +    return soin_ans -def factorization(n): -    arr = [] -    temp = n -    for i in range(2, int(-(-(n**0.5) // 1)) + 1): -        if temp % i == 0: -            cnt = 0 -            while temp % i == 0: -                cnt += 1 -                temp //= i -            arr.append([i, cnt]) -    if temp != 1: -        arr.append([temp, 1]) -    if arr == []: -        arr.append([n, 1]) -    return arr - - -for i in make_divisors(n): -    if int(n) != n or n == 1: -        break -    if n % i == 0 and len(factorization(i)) == 1: -        n = n / i -        count += 1 -if count - 1 >= 0: -    print((count - 1)) -else: -    print((0)) +s_list = soin(n) +s_set = set(s_list) +sc = Counter(s_list) +count = 0 +for i in s_set: +    for j in range(1, sc[i] + 1): +        if n % i**j == 0: +            n //= i**j +            count += 1 +print(count)