#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<stdbool.h>
#include<math.h>
#include<limits.h>
#define MAX 100002
typedef long long ll;
int main(){
    ll N;
    ll prime_index=0;
    ll prime_seq[MAX]={0};
    bool prime_flag[MAX];    //素数ならtrue;
    for(ll i=2;i<=MAX;i++) prime_flag[i]=true;
    scanf("%lld",&N);
    for(ll i=2;i<=MAX;i++){
        if(!prime_flag[i]) continue;
        for(ll j=2;i*j<=MAX;j++)
            prime_flag[i*j]=false;
    }
    for(ll i=2;i<=MAX;i++){
        if(prime_flag[i]) prime_seq[prime_index++]=i;
    }
    ll prime_fac[MAX]={0};
    while(N!=1){
        ll i=0;
        while(N%prime_seq[i]!=0) i++;
        N/=prime_seq[i];
        prime_fac[prime_seq[i]]++;
    }
    ll table[15];
    table[1]=1;
    for(ll i=2;i<=15;i++)
        table[i]=table[i-1]*i;
    ll ans=0;
    for(ll i=0;i<=prime_index;i++){
        if(!prime_fac[prime_seq[i]]) continue;
        ll j=1;
        while(table[j]<=prime_fac[prime_seq[i]]) j++;
        ans+=j-1;
    }
    printf("%lld",ans);
}
