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 <iostream>
#include <string>
#include <unordered_map>
#include <stdio.h>
#include <list>
#include <vector>
#include <algorithm>
#include <stack>
#include <climits>
#include <cmath>
#include <map>
#include <queue>
using namespace std;
#define rep(i, n) for(int i = 0; i < n; ++i)
#define ALL(v) v.begin(), v.end()
typedef long long ll;

int main()
{
	int n;
	cin >> n;
	int N = n;
	vector<int> div(1000,1);
	for(int i=2;i<=n;i++)
	{
		int I =  i;
		for(int j = 2;j<=i;j++)
		{
			//cout<<i<<':'<<j<<endl;
			while(I%j==0)
			{
				I/=j;
				div[j]++;
			}
		}
	}
	ll ans = 1;
	rep(i,1000)
	{
		//if(i-2<=n)cout<<div[i]<<endl;
		ans*=div[i];
		ans%=1000000007;
	}
	cout<<ans<<endl;
	return 0;
}