import sys

from collections import Counter

def main():

    n = int(eval(input()))



    def is_prime(n):

        for i in range(2, n + 1):

            if i * i > n:

                break

            if n % i == 0:

                return False

        return n != 1



    def prime_dec(n):

        i = 2

        table = []

        while i * i <= n:

            while n % i == 0:

                n /= i

                table.append(int(i))

            i += 1

        if n > 1:

            table.append(n)

        return table





    if is_prime(n):

        print((1))

        sys.exit()



    pd = prime_dec(n)

    pdc = Counter(pd)

    pdcl = [pdc[i] for i in pdc]

    r = 0

    for pse in pdcl:

        num = pse

        cnt = 1

        while num > 0:

            if cnt > num:

                break

            else:

                r += 1

                num -= cnt

                cnt += 1

    print(r)





if __name__ == '__main__':

    main()
import sys

read = sys.stdin.read

def main():

    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



    n = int(eval(input()))

    if n == 1:

        print((0))

        sys.exit()

    nfac = factorization(n)

    r = 0

    for nfe in nfac:

        c = 1

        while True:

            if c <= nfe[1]:

                nfe[1] -= c

                r += 1

                c += 1

            else:

                break

    print(r)



if __name__ == '__main__':

    main()

import sys
from collections import Counter


def main():
    n = int(eval(input()))

    def is_prime(n):
        for i in range(2, n + 1):
            if i * i > n:
                break
            if n % i == 0:
                return False
        return n != 1

    def prime_dec(n):
        i = 2
        table = []
        while i * i <= n:
            while n % i == 0:
                n /= i
                table.append(int(i))
            i += 1
        if n > 1:
            table.append(n)
        return table

    if is_prime(n):
        print((1))
        sys.exit()
    pd = prime_dec(n)
    pdc = Counter(pd)
    pdcl = [pdc[i] for i in pdc]
    r = 0
    for pse in pdcl:
        num = pse
        cnt = 1
        while num > 0:
            if cnt > num:
                break
            else:
                r += 1
                num -= cnt
                cnt += 1
    print(r)


if __name__ == "__main__":
    main()

import sys

read = sys.stdin.read


def main():
    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

    n = int(eval(input()))
    if n == 1:
        print((0))
        sys.exit()
    nfac = factorization(n)
    r = 0
    for nfe in nfac:
        c = 1
        while True:
            if c <= nfe[1]:
                nfe[1] -= c
                r += 1
                c += 1
            else:
                break
    print(r)


if __name__ == "__main__":
    main()

-from collections import Counter + +read = sys.stdin.read +    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 + - -    def is_prime(n): -        for i in range(2, n + 1): -            if i * i > n: +    if n == 1: +        print((0)) +        sys.exit() +    nfac = factorization(n) +    r = 0 +    for nfe in nfac: +        c = 1 +        while True: +            if c <= nfe[1]: +                nfe[1] -= c +                r += 1 +                c += 1 +            else: -            if n % i == 0: -                return False -        return n != 1 - -    def prime_dec(n): -        i = 2 -        table = [] -        while i * i <= n: -            while n % i == 0: -                n /= i -                table.append(int(i)) -            i += 1 -        if n > 1: -            table.append(n) -        return table - -    if is_prime(n): -        print((1)) -        sys.exit() -    pd = prime_dec(n) -    pdc = Counter(pd) -    pdcl = [pdc[i] for i in pdc] -    r = 0 -    for pse in pdcl: -        num = pse -        cnt = 1 -        while num > 0: -            if cnt > num: -                break -            else: -                r += 1 -                num -= cnt -                cnt += 1