import sys

N = int(sys.stdin.readline().rstrip())



def make_divisors(n):

    divisors = []

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

        if n % i == 0:

            divisors.append(i)

            if i != n // i:

                divisors.append(n // i)

    divisors.sort()

    return divisors



def prime_judge(n):

    a = []

    while n % 2 == 0:

        a.append(2)

        n //= 2

    f = 3

    while f * f <= n:

        if n % f == 0:

            a.append(f)

            n //= f

        else:

            f += 2

    if n != 1:

        a.append(n)

    a = set(a)

    if len(a) == 1:

        return True

    else:

        return False



def prime_factorize(n):

    a = []

    while n % 2 == 0:

        a.append(2)

        n //= 2

    f = 3

    while f * f <= n:

        if n % f == 0:

            a.append(f)

            n //= f

        else:

            f += 2

    if n != 1:

        a.append(n)

    a = set(a)

    if len(a) == 1 and prime_judge(list(a)[0]):

        return True

    else:

        return False



divisors = make_divisors(N)

ans = 0

for d in divisors:

    if prime_factorize(d) and N % d == 0 and N // d > 0:

            N //= d

            ans += 1

print(ans)

import sys

N = int(sys.stdin.readline().rstrip())



def make_divisors(n):

    divisors = []

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

        if n % i == 0:

            divisors.append(i)

            if i != n // i:

                divisors.append(n // i)

    divisors.sort()

    return divisors



def prime_factorize(n):

    a = []

    while n % 2 == 0:

        a.append(2)

        n //= 2

    f = 3

    while f * f <= n:

        if n % f == 0:

            a.append(f)

            n //= f

        else:

            f += 2

    if n != 1:

        a.append(n)

    a = set(a)

    if len(a) == 1:

        return True

    else:

        return False



divisors = make_divisors(N)

ans = 0

for d in divisors:

    if prime_factorize(d) and N % d == 0:

        N //= d

        ans += 1

print(ans)
import sys

N = int(sys.stdin.readline().rstrip())


def make_divisors(n):
    divisors = []
    for i in range(1, int(n**0.5) + 1):
        if n % i == 0:
            divisors.append(i)
            if i != n // i:
                divisors.append(n // i)
    divisors.sort()
    return divisors


def prime_judge(n):
    a = []
    while n % 2 == 0:
        a.append(2)
        n //= 2
    f = 3
    while f * f <= n:
        if n % f == 0:
            a.append(f)
            n //= f
        else:
            f += 2
    if n != 1:
        a.append(n)
    a = set(a)
    if len(a) == 1:
        return True
    else:
        return False


def prime_factorize(n):
    a = []
    while n % 2 == 0:
        a.append(2)
        n //= 2
    f = 3
    while f * f <= n:
        if n % f == 0:
            a.append(f)
            n //= f
        else:
            f += 2
    if n != 1:
        a.append(n)
    a = set(a)
    if len(a) == 1 and prime_judge(list(a)[0]):
        return True
    else:
        return False


divisors = make_divisors(N)
ans = 0
for d in divisors:
    if prime_factorize(d) and N % d == 0 and N // d > 0:
        N //= d
        ans += 1
print(ans)

import sys

N = int(sys.stdin.readline().rstrip())


def make_divisors(n):
    divisors = []
    for i in range(1, int(n**0.5) + 1):
        if n % i == 0:
            divisors.append(i)
            if i != n // i:
                divisors.append(n // i)
    divisors.sort()
    return divisors


def prime_factorize(n):
    a = []
    while n % 2 == 0:
        a.append(2)
        n //= 2
    f = 3
    while f * f <= n:
        if n % f == 0:
            a.append(f)
            n //= f
        else:
            f += 2
    if n != 1:
        a.append(n)
    a = set(a)
    if len(a) == 1:
        return True
    else:
        return False


divisors = make_divisors(N)
ans = 0
for d in divisors:
    if prime_factorize(d) and N % d == 0:
        N //= d
        ans += 1
print(ans)

-def prime_judge(n): +def prime_factorize(n): -def prime_factorize(n): -    a = [] -    while n % 2 == 0: -        a.append(2) -        n //= 2 -    f = 3 -    while f * f <= n: -        if n % f == 0: -            a.append(f) -            n //= f -        else: -            f += 2 -    if n != 1: -        a.append(n) -    a = set(a) -    if len(a) == 1 and prime_judge(list(a)[0]): -        return True -    else: -        return False - - -    if prime_factorize(d) and N % d == 0 and N // d > 0: +    if prime_factorize(d) and N % d == 0: