fun main(args: Array<String>) {
    val n = readLine()?.toLong() ?: return
    var r = n
    var i = 2L
    val divs = mutableListOf<Long>()
    while (i * i <= r) {
        if (r % i == 0L) {
            r /= i
            divs.add(i)
        } else {
            i++
        }
    }
    var count = 0
    if (r != 1L) {
        divs.add(r)
    }
    divs.groupBy { it }
        .forEach { t, u ->
            var c = u.size
            var j = 1
            while (c >= j) {
                c -= j
                j++
                count++
            }
        }

    println(count.toString())
}
