import java.util.Arrays
import java.util.ArrayList

const val MOD: Long = (1e9+7).toLong()

fun main(args: Array<String>) {
    val n = readLine()!!.toInt()

    val cntprime: MutableMap<Int, Int> = mutableMapOf()

    for (i in 2..n) {
        val p = prime_fact(i)
        for ((k, v) in p) {
            cntprime[k] = cntprime.getOrElse(k, {0}) + v
        }
    }

    var res = 1L
    for ((k, v) in cntprime) {
        res = (res * (v+1)) % MOD
    }
    println(res)
}

fun primes(n: Int) : IntArray {
    /** Return a list of primes not more than n **/
    val primes: ArrayList<Int> = arrayListOf()

    val isPrime = Array(n+1, {true})
    for (i in 2..n) {
        if (isPrime[i]) {
            primes.add(i)
            var buf = i * 2
            while (buf <= n) {
                isPrime[buf] = false
                buf += i
            }
        }
    }
    return primes.toIntArray()
}

fun prime_fact(n: Int) : Map<Int, Int> {
    /** Return a map of the numbers of prime factors **/
    var cntprime: MutableMap<Int, Int> = mutableMapOf()

    var m = n
    for (i in primes(Math.sqrt(n.toDouble()).toInt())) {
        while (m % i == 0) {
            cntprime[i] = cntprime.getOrElse(i, {0}) + 1
            m /= i
        }
    }
    if (m != 1) {
        cntprime[m] = 1
    }

    return cntprime
}
