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 <bits/stdc++.h>
using namespace std;
using ll = long long;

void prime_factorization(vector<int> &P, ll N) {
    for(ll i = 2; i * i <= N; i++) {
        if(N % i == 0) {
            ll ex = 0;
            while(N % i == 0) {
                ex++;
                N /= i;
            }
            P.at(i) += ex;
        }
    }
    if(N != 1) P.at(N)++;
}

int main() {
    ll N; cin >> N;
    ll ans = 1;
    vector<int> prime(N+1,1);
    for(int i = 2; i <= N; i++) {
        prime_factorization(prime,i);
    }
    for(auto x:prime) {
        ans *= x;
        ans %= 1000000007;
    }
    cout << ans << endl;
}