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;

typedef long long LL;
typedef pair<int, int> II;

const int N = 1000 + 10;
int n, c[N];

void Factorize(int n) {
    for (int i = 2; i * i <= n; ++i) if (n % i == 0) {
        while (n % i == 0) {
            n /= i;
            c[i]++;
        }
    }
    if (n > 1) c[n]++;
}

int main() {
    #ifdef LOCAL
        freopen("Data.inp", "r", stdin);
        freopen("Data.out", "w", stdout);
    #endif

    scanf("%d", &n);
    for (int i = 1; i <= n; ++i) Factorize(i);

    int ans = 1;
    for (int i = 1; i <= n; ++i) ans = ans * (c[i] + 1ll) % 1000000007;

    printf("%d", ans);
    return 0;
}