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 <vector>
#define llint long long
#define mod 1000000007

using namespace std;

int N;
bool prime[1005];
vector<int> vec;
int cnt[1000];

int main(void)
{
	cin >> N;
	for(int i = 2; i <= N; i++){
		if(prime[i]) continue;
		for(int j = i*2; j <= N; j+=i){
			prime[j] = true;
		}
		vec.push_back(i);
	}
	
	int n;
	for(int i = 2; i <= N; i++){
		n = i;
		for(int j = 0; j < vec.size(); j++){
			while(n % vec[j] == 0){
				cnt[j]++;
				n /= vec[j];
			}
		}
	}
	
	llint ans = 1;
	for(int j = 0; j < vec.size(); j++){
		ans *= cnt[j]+1;
		ans %= mod;
	}
	
	cout << ans << endl;
	return 0;
}