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++ (GCC 9.2.1) (judge verdict: Runtime Error)

#include <bits/stdc++.h>

using namespace std;

using ll = long long;

vector<ll> counts(1001);

// 約数をcountsに入れる
void helper(int n) {
  for (int i = 2; i * i <= n; i++) {
    if (n % i != 0) {
      continue;
    }
    int count = 0;
    while (n % i == 0) {
      count++;
      n /= i;
    }
    counts[i] += count;
  }
  if (n > 1) {
    counts[n]++;
  }
}

int main() {
  int mod = pow(10, 9) + 7;
  int n;
  cin >> n;
  if (n <= 1) {
    return 1;
  }
  for (int i = 2; i <= n; i++) {
    helper(i);
  }
  ll v = 1;
  for (int i = 2; i <= 1000; i++) {
    v *= (counts[i] + 1);
    v %= mod;
  }
  cout << v << endl;
}