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 MOD = 1e9 + 7;
const int inf = 1e9;
const ll INF = 1e18;
const double pi = 3.14159265358979323846;
#define rep(i,n) for(ll i=0;i<n;i++)

void divisor(ll n,map<ll,ll> mp){
	for(int i=2;i*i<=n;i++){
		if(n%i==0){
			mp[i]++;
			mp[n/i]++;
		}
	}
	return;
}

int main(){
	ll n;cin>>n;
	map<ll,ll> mp;
	for(ll i=2;i<=n;i++){
		int j=i,k=2;
		while(j>=k){
			if(j%k==0){
				mp[k]++;
				j/=k;
			}
			else{
				k++;
			}
		}
	}
	//for(auto i:mp) cout<<i.first<<" : "<<i.second<<"\n";
	ll ans=1;
	for(auto i:mp){
		ans=ans*(i.second+1)%MOD;
	}

	cout<<ans<<"\n";

}