use proconio::*;
use std::collections::HashMap;

fn main() {
    input! {
        n: i64,
    }

    let mut n = n;
    let mut hm = HashMap::new();
    for i in 2..n {
        if i * i > n {
            break;
        }

        while n % i == 0 {
            hm.entry(i)
                .and_modify(|x| *x += 1)
                .or_insert(1);

            n /= i;
        }
    }

    if n != 1 {
        hm.entry(n)
            .and_modify(|x| *x += 1)
            .or_insert(1);
    }

    let mut ans = 0;
    for (_, v) in hm {
        let mut sum = 0;
        for i in 1..v {
            if sum + i > v {
                break;
            }

            ans += 1;
            sum += i;
        }
    }

    println!("{}", ans);
}
