#include <vector>
#include <cmath>
const int Max = 1e5;
using namespace std;
bool isprime[Max];
vector<int>prime;
void Inition()
{
for(int i=0;i<Max;i++)
isprime[i]=true;
isprime[0]=false;isprime[1]=true;
for(int i=2;i<Max;i++)
{
if(!isprime[i]) continue;
prime.push_back(i);
for(int j =i*i;j<Max;j+=i)
isprime[j]=false;
}
}
int main()
{
Inition();
int n;
while(cin>>n){
int ans=0;
// 注意这里的条件,当prime[i]>n时,后面的while循环就没有意义了
for(int i=0;i<prime.size() && prime[i]<n;i++){
while(n%prime[i]==0){
n/=prime[i];
ans++;
}
}
if(n>1) ans++;
cout<<ans<<endl;
}
return 0;
}