fun main(args: Array<String>) {
    val N = readLine()!!.toInt()
    val map = hashMapOf<Int, Long>()
    val mod = 1000000007L

    (1..N).forEach {
        val div = divisors(it)
        div.entries.forEach {
            map[it.key] = (map.getOrElse(it.key, { 0 }) + it.value) % mod
        }
    }


    var ans = 1L
    map.entries.forEach {
        ans = (ans * (it.value + 1)) % mod
    }
    println(ans % mod)
}



fun divisors(n: Int) : Map<Int, Int> {
    val map = hashMapOf<Int, Int>()

    var num = n
    for (i in 2 .. Math.sqrt(n.toDouble()).toInt()) {
        while (num % i == 0) {
            num /= i
            map[i] = map.getOrElse(i,  { 0 }) + 1
        }
    }

    if (num != 1) {
        map[num] = map.getOrElse(num, { 0 }) + 1
    }

    return map
}