program probd
    implicit none
    integer(16) :: N, i
    integer :: a(1000005)
    integer :: ans
    integer :: tmp
    read(*,*) N

    do i = 2, 1000005
        a(i) = 0
        do while(mod(N, i) == 0)
            a(i) = a(i) + 1
            N = N / i
        end do
    end do

    ans = 0

    if(N /= 1) then
        ans = ans + 1
    end if

    do i = 2, 1000005
        tmp = 1
        do while(a(i) >= tmp)
            ans = ans + 1
            a(i) = a(i) - tmp
            tmp = tmp + 1
        end do
    end do

    write(*,*) ans

    stop
contains
end program probd