fun main(args: Array<String>) {
    val mod = 1000000007
    val N = readInputLine().toInt()
    val minFactor = IntArray(N + 1, { -1 })
    val isPrime = BooleanArray(N + 1, { true })
    
    isPrime[0] = false
    isPrime[1] = false
    minFactor[0] = 0
    minFactor[1] = 1
    
    for (i in 2..N) {
        if (isPrime[i]) {
            minFactor[i] = i
            for (j in i * 2..N step i) {
                isPrime[j] = false
                if (minFactor[j] == -1) {
                    minFactor[j] = i
                }
            }
        }
    }
    
    val factorCount = mutableMapOf<Int, Int>()

    for (i in 2..N) {
        var tmp = i
        while (tmp != 1) {
            val cnt = factorCount.get(minFactor[tmp]) ?: 0
            factorCount.put(minFactor[tmp], cnt + 1 % mod)
            tmp /= minFactor[tmp]
        }
    }

    var ans = 1L
    
    for (factorNum in factorCount.values) {
        ans *= (factorNum + 1)
        ans %= mod
    }
    
    println(ans)
}

fun readInputLine(): String {
    return readLine()!!
}
