Problem:
Score : 300 points

Problem Statement

You are given an integer N.
Find the number of the positive divisors of N!, modulo 10^9+7.

Constraints

1≤N≤10^3

Input

The input is given from Standard Input in the following format:

N

Output

Print the number of the positive divisors of N!, modulo 10^9+7.

Sample Input 1

3

Sample Output 1

4

There are four divisors of 3! =6: 1, 2, 3 and 6. Thus, the output should be 4.

Sample Input 2

6

Sample Output 2

30

Sample Input 3

1000

Sample Output 3

972926972

Solution in Kotlin (1.0.0) (judge verdict: Accepted)

fun main(arg: Array<String>) {
    val N = nextInt()
    val MOD = 1000000007L
    var P = IntArray(N + 1)
    for (i in 2 .. N)
        for (j in i + i .. N step i) P[j] = 1
    var ans = 1L
    for (i in 2 .. N)
        if (P[i] == 0) {
            var total = 1L
            var j = i
            while (j <= N) {
                total += N / j
                j *= i
            }
            ans = ans * total % MOD
        }
    println(ans)
}

fun next() = readLine()!!
fun nextInt(offset: Int = 0) = Integer.parseInt(next()) + offset
fun nextLong() = next().toLong()
fun listOfString() = next().split(" ")
fun listOfInt() = listOfString().map(String::toInt)
fun listOfInt(offset: Int = 0) = listOfString().map { Integer.parseInt(it) + offset }