#include <iostream>
#include <vector>
using namespace std;

int a[1000];

void prec() { // precomputed values
a[2]=1;
a[3]=2;
a[5]=3;
a[7]=4;
a[11]=5;
a[13]=5;
a[17]=5;
a[19]=6;
a[23]=7;
a[29]=7;
a[31]=7;
a[37]=7;
a[41]=7;
a[43]=8;
a[47]=9;
a[53]=8;
a[59]=9;
a[61]=8;
a[67]=9;
a[71]=9;
a[73]=8;
a[79]=9;
a[83]=9;
a[89]=9;
a[97]=8;
a[101]=9;
a[103]=9;
a[107]=10;
a[109]=9;
a[113]=9;
a[127]=10;
a[131]=10;
a[137]=9;
a[139]=11;
a[149]=10;
a[151]=10;
a[157]=10;
a[163]=10;
a[167]=11;
a[173]=11;
a[179]=11;
a[181]=10;
a[191]=11;
a[193]=9;
a[197]=11;
a[199]=11;
a[211]=11;
a[223]=11;
a[227]=11;
a[229]=11;
a[233]=11;
a[239]=11;
a[241]=10;
a[251]=11;
a[257]=9;
a[263]=12;
a[269]=12;
a[271]=11;
a[277]=12;
a[281]=11;
a[283]=13;
a[293]=11;
a[307]=11;
a[311]=12;
a[313]=11;
a[317]=12;
a[331]=12;
a[337]=11;
a[347]=13;
a[349]=12;
a[353]=11;
a[359]=13;
a[367]=12;
a[373]=12;
a[379]=12;
a[383]=13;
a[389]=11;
a[397]=12;
a[401]=11;
a[409]=11;
a[419]=13;
a[421]=12;
a[431]=13;
a[433]=11;
a[439]=12;
a[443]=12;
a[449]=11;
a[457]=12;
a[461]=13;
a[463]=13;
a[467]=13;
a[479]=13;
a[487]=12;
a[491]=13;
a[499]=13;
a[503]=13;
a[509]=13;
a[521]=12;
a[523]=13;
a[541]=12;
a[547]=13;
a[557]=14;
a[563]=13;
a[569]=13;
a[571]=13;
a[577]=11;
a[587]=13;
a[593]=12;
a[599]=14;
a[601]=12;
a[607]=13;
a[613]=12;
a[617]=13;
a[619]=13;
a[631]=13;
a[641]=11;
a[643]=14;
a[647]=13;
a[653]=13;
a[659]=15;
a[661]=13;
a[673]=12;
a[677]=13;
a[683]=14;
a[691]=14;
a[701]=13;
a[709]=14;
a[719]=15;
a[727]=14;
a[733]=13;
a[739]=13;
a[743]=14;
a[751]=13;
a[757]=13;
a[761]=13;
a[769]=11;
a[773]=12;
a[787]=14;
a[797]=14;
a[809]=13;
a[811]=13;
a[821]=13;
a[823]=13;
a[827]=15;
a[829]=14;
a[839]=15;
a[853]=14;
a[857]=14;
a[859]=14;
a[863]=15;
a[877]=13;
a[881]=13;
a[883]=14;
a[887]=14;
a[907]=14;
a[911]=14;
a[919]=13;
a[929]=13;
a[937]=13;
a[941]=15;
a[947]=15;
a[953]=13;
a[967]=15;
a[971]=13;
a[977]=13;
a[983]=15;
a[991]=14;
a[997]=14;
}

/*
int calc(int t) { // the function used to calculate the values
    vector <int> v;
    bool ch=true;
    int x=0,y=1;
    v.push_back(t-1);

    while (ch) {
        ch=false;
        y=v.size();
        for(;x<y;x++) {
            if (v[x]>1) {
                ch=true;
                for (int i=2;v[x]>1;i++) {
                    if (v[x]%i==0) {
                        v.push_back(i-1);
                        v[x]/=i;
                        i--;
                    }
                }
            }
        }
    }

    return v.size();
}
*/

int main() {
    prec();
    int n;
    int s=0;
    cin>>n;
    for (int i=2;n>1;i++) {
        if (n%i==0) {
            n/=i;
            s+=a[i];
            i--;
        }
    }

    cout<<s<<"\n";
}
