fun main(args: Array<String>) {
    arc067a()
}

fun arc067a() {
    val n = readLine()!!.toLong()

    if (n == 1L) return println(1)

    val answer = (2..n).map { primeFactorization(it).toList() }.flatten()
        .groupBy { it.first }.map { entry -> entry.value.map { it.second }.sum() }
        .fold(1L) { acc, l -> mod(acc * (l + 1)) }

    println(answer)
}

private const val MOD = (1e9 + 7).toLong()
private fun mod(x: Long): Long = x % MOD

private fun primeFactorization(n: Long): Map<Long, Long> {
    val factors = mutableMapOf<Long, Long>()
    var temp = n
    var i = 2L
    while (i * i <= temp) {
        while (temp % i == 0L) {
            factors[i] = (factors[i] ?: 0) + 1
            temp /= i
        }
        i++
    }
    if (temp > 1) factors[temp] = 1
    return factors
}
