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 C++14 (GCC 5.4.1) (judge verdict: Accepted)

#include <iostream>

using namespace std;

#define MAX_N 1000

// 入力
int n;

long long divisorNum = 1;
long long cnt[MAX_N + 1];
long long mod = 1e9 + 7;

int main(void) {
    cin >> n;

    for (int i = 2; i <= n; ++i) {
        for (int j = i, k = 2; j > 1;) {
            if (j % k == 0) {
                j /= k;
                cnt[k]++;
            } else {
                k++;
            }
        }
    }

    for (int i = 2; i <= n; ++i) {
        divisorNum = divisorNum * (cnt[i] + 1) % mod;
    }

    cout << divisorNum << endl;
    return 0;
}