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 PHP7 (7.0.15) (judge verdict: Accepted)

<?php
    fscanf(STDIN, "%d", $N);

    define('MOD', pow(10,9) + 7);

    $p = array();

    for ($i = 2; $i <= 1000; $i++) {
        $p[$i] = 1;
    }

    for ($i = 2; $i <= 1000; $i++) {
        if ($p[$i] == 1) {
            $loop = 1000 / $i;
            for ($j = 2; $j <= $loop; $j++) {
                $p[$i*$j] = 0;
            }
        }
    }

    // for ($i = 2; $i < 1000; $i++) {
    //     if ($p[$i]) echo $i . PHP_EOL;
    // }

    for ($i = $N; $i > 1; $i--) {
        $tmp = $i;
        for ($j = 2; $j <= $i; $j++) {
            if ($p[$j] == 0) continue;
            while ($tmp % $j == 0) {
                // echo $tmp . " " . $j . " ";
                $sum[$j]++;
                $tmp /= $j;
            }
        }
    }

    // var_dump($sum);

    $ans = 1;

    if (is_array($sum)) {
        foreach ($sum as $v) {
            $ans *= ($v + 1);
            $ans %= MOD;
        }        
    }

    echo $ans . PHP_EOL;