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.3.71) (judge verdict: Accepted)

fun main(args: Array<String>) {
    val n = readLine()?.toInt() ?: return
    if (n == 1) {
        println("1")
        return
    }
    val m = (1e9 + 7).toLong()
    val primes = hashMapOf<Long, Long>()
    2.until(n + 1).forEach {
        var r = it.toLong()
        var p = 2L
        while (r != 1L) {
            if (r % p == 0L) {
                r /= p
                primes[p] = primes[p]?.let { it + 1 } ?: 1
            } else {
                if (p == 2L) {
                    p += 1L
                } else {
                    p += 2L
                }
            }
        }
    }
    val count = primes.values.map { it + 1 }.reduce { a, b -> (a * b) % m }
    println(count.toString())
}