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;
const ll md = 1000000007;

int prime[1001]={1};
int prime_num;
int prime_set(int n){
  int index = 0;
  for(int i=2; i<=n; i++){
    int flag=1;
    for(int j=2; j<i; j++){
      if(i%j == 0){
        flag = 0;
        break;
      }
    }
    if(flag==0)
      continue;
    prime[index] = i;
    index++;
  }
  prime_num = index;
}      

int main(){
  int n;
  cin >> n;
  
  prime_set(n);
  map<int,int> mp;
  
  
  while(n>0){
    int quot=1;
    for(int i=0; i<prime_num; i++){
      quot = prime[i];
      while(n % quot == 0 && n / quot > 0){
        mp[i]++;
        quot *= prime[i];
      }
    }
    n--;
  }
  
  ll ans = 1;
  
  for(auto itr=mp.begin(); itr != mp.end(); itr++){
    ans *= (1+(itr->second));
    ans %= md;
  }
  
  cout << ans << endl;
}