n=int(eval(input()))

M=10**6

l=[]

p=[1]*M

for i in range(2,M):

  if p[i]:

    l+=[i]

    for j in range(2*i,M,i): p[j]=0

d={}

for k in l:

  while n%k<1: n//=k; d[k]=d.get(k,0)+1

a=0

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

  t=c=0

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

  a+=c

print((a+(n>1)))
n=int(eval(input()))

d={}

for k in range(2,10**6):

  while n%k<1: n//=k; d[k]=d.get(k,0)+1

a=0

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

  t=c=0

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

  a+=c

print((a+(n>1)))
n = int(eval(input()))
M = 10**6
l = []
p = [1] * M
for i in range(2, M):
    if p[i]:
        l += [i]
        for j in range(2 * i, M, i):
            p[j] = 0
d = {}
for k in l:
    while n % k < 1:
        n //= k
        d[k] = d.get(k, 0) + 1
a = 0
for i in list(d.values()):
    t = c = 0
    while t + c < i:
        c += 1
        t += c
    a += c
print((a + (n > 1)))

n = int(eval(input()))
d = {}
for k in range(2, 10**6):
    while n % k < 1:
        n //= k
        d[k] = d.get(k, 0) + 1
a = 0
for i in list(d.values()):
    t = c = 0
    while t + c < i:
        c += 1
        t += c
    a += c
print((a + (n > 1)))

-M = 10**6 -l = [] -p = [1] * M -for i in range(2, M): -    if p[i]: -        l += [i] -        for j in range(2 * i, M, i): -            p[j] = 0 -for k in l: +for k in range(2, 10**6):