#include<stdio.h>

int isnp[100100];
int ecnt[100100];

int main(void){
    register long i,j;
    for(i = 2;i < 100100;i++)for(j = 2;i*j < 100100;j++)isnp[i*j] = 1;
    long long n;
    scanf("%lld",&n);
        if(n == 1){
        puts("0");
        return 0;
    }
    static int nispf;
    for(i = 2;i < 100100;i++)if(!isnp[i])while(!(n % i)){n /= i;ecnt[i]++;}
    for(i = 2;i < 100100;i++){
        if(ecnt[i])break;
        if(i == 100100-1)nispf = 1;
    }
    if(nispf){
        puts("1");
        return 0;
    }
    static long long ans;
    for(i = 0;i < 100100;i++)if(ecnt[i]){
        j = 1;
        do{ecnt[i] -= j;ans++;}while(ecnt[i] >= ++j);
    }
    printf("%lld",ans);
}