n=int(eval(input()))



int_sqrt=lambda x:int(x**0.5)+1

def sieve(x):

  p=[]

  b=[1]*x

  for i in range(2,x):

    if b[i]:

      p+=[i]

      for j in range(2*i,x,i): b[j]=0

  return p

def prime_factor(x):

  d={}

  for i in p:

    while x%i<1:

      x//=i

      d[i]=d.get(i,0)+1

    if x<2: break

  if x>1: d[x]=1

  return d



p=sieve(int_sqrt(n))

d=prime_factor(n)

a=0

for i in list(d.values()):

  t=c=0

  while t+c<i: c+=1; t+=c

  a+=c

print(a)
n=int(eval(input()))



int_sqrt=lambda x:int(x**0.5)+1

def prime_factor(x):

  d={}

  for i in p:

    while x%i<1:

      x//=i

      d[i]=d.get(i,0)+1

    if x<2: break

  if x>1: d[x]=1

  return d



p=list(range(2,int_sqrt(n)))

d=prime_factor(n)

a=0

for i in list(d.values()):

  t=c=0

  while t+c<i: c+=1; t+=c

  a+=c

print(a)
n = int(eval(input()))
int_sqrt = lambda x: int(x**0.5) + 1


def sieve(x):
    p = []
    b = [1] * x
    for i in range(2, x):
        if b[i]:
            p += [i]
            for j in range(2 * i, x, i):
                b[j] = 0
    return p


def prime_factor(x):
    d = {}
    for i in p:
        while x % i < 1:
            x //= i
            d[i] = d.get(i, 0) + 1
        if x < 2:
            break
    if x > 1:
        d[x] = 1
    return d


p = sieve(int_sqrt(n))
d = prime_factor(n)
a = 0
for i in list(d.values()):
    t = c = 0
    while t + c < i:
        c += 1
        t += c
    a += c
print(a)

n = int(eval(input()))
int_sqrt = lambda x: int(x**0.5) + 1


def prime_factor(x):
    d = {}
    for i in p:
        while x % i < 1:
            x //= i
            d[i] = d.get(i, 0) + 1
        if x < 2:
            break
    if x > 1:
        d[x] = 1
    return d


p = list(range(2, int_sqrt(n)))
d = prime_factor(n)
a = 0
for i in list(d.values()):
    t = c = 0
    while t + c < i:
        c += 1
        t += c
    a += c
print(a)

- - -def sieve(x): -    p = [] -    b = [1] * x -    for i in range(2, x): -        if b[i]: -            p += [i] -            for j in range(2 * i, x, i): -                b[j] = 0 -    return p -p = sieve(int_sqrt(n)) +p = list(range(2, int_sqrt(n)))