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: Wrong Answer)

#include<bits/stdc++.h>
using namespace std;
int main () {
  int N;
  cin >> N;
  vector<int>so;
  vector<bool>un(N + 1, true);
  for (int i = 2; i <= N; i ++) {
    if (un[i]) {
      so.push_back(i);
      for (int j = 0; j <= N / i; j ++) {
        un[i * j] = false;
      }
    }
  }
  long long ans = 1;
  int si = (int)so.size();
  for (int i = 0; i < si; i ++) {
    int n = N;
    long long kj = 0;
    while (n) {
      kj += (long long) n / so[i];
      n /= so[i];
    }
    ans *= kj + 1;
  }
  cout << ans << endl;
}