N=int(eval(input()))

p=[]

r=0



if N%2==0:

  c=0

  while N%2==0:

    c+=1

    N/=2

  p.append([c])

  

i=3

while i<N**0.5+1:

  if N%i==0:

    c=0

    while N%i==0:

      c+=1

      N/=i

    p.append([c])

  i+=2

  

if N!=1:

  p.append([1])

  

for i in range(len(p)):

  j=1

  while p[i][0]>=j:

    p[i][0]-=j

    j+=1

    r+=1

    

print(r)
N=int(eval(input()))

p=[]

r=0



if N%2==0:

  c=0

  while N%2==0:

    c+=1

    N/=2

  p.append(c)

  

for i in range(3,int(N**0.5)+1,2):

  if N%i==0:

    c=0

    while N%i==0:

      c+=1

      N/=i

    p.append(c)

  

if N!=1:

  p.append(1)

  

for i in p:

  r+=int(((8*i+1)**0.5-1)/2)

print(r)
N = int(eval(input()))
p = []
r = 0
if N % 2 == 0:
    c = 0
    while N % 2 == 0:
        c += 1
        N /= 2
    p.append([c])
i = 3
while i < N**0.5 + 1:
    if N % i == 0:
        c = 0
        while N % i == 0:
            c += 1
            N /= i
        p.append([c])
    i += 2
if N != 1:
    p.append([1])
for i in range(len(p)):
    j = 1
    while p[i][0] >= j:
        p[i][0] -= j
        j += 1
        r += 1
print(r)

N = int(eval(input()))
p = []
r = 0
if N % 2 == 0:
    c = 0
    while N % 2 == 0:
        c += 1
        N /= 2
    p.append(c)
for i in range(3, int(N**0.5) + 1, 2):
    if N % i == 0:
        c = 0
        while N % i == 0:
            c += 1
            N /= i
        p.append(c)
if N != 1:
    p.append(1)
for i in p:
    r += int(((8 * i + 1) ** 0.5 - 1) / 2)
print(r)

-    p.append([c]) -i = 3 -while i < N**0.5 + 1: +    p.append(c) +for i in range(3, int(N**0.5) + 1, 2): -        p.append([c]) -    i += 2 +        p.append(c) -    p.append([1]) -for i in range(len(p)): -    j = 1 -    while p[i][0] >= j: -        p[i][0] -= j -        j += 1 -        r += 1 +    p.append(1) +for i in p: +    r += int(((8 * i + 1) ** 0.5 - 1) / 2)