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 <vector>
#include <algorithm>

typedef long long int ll;

#define FOR(i,n,m) for(ll i=(ll)(m);i<(ll)(n);++i)
#define REP(i,n) FOR(i,n,0)
#define IREP(i,n) for(ll i=(ll)(n);i>=0;--i)

const ll MOD = 1000000007;

using namespace std;

int n[1001] = {};

void count(int i)
{
	while (i != 1)
	{
		FOR(j, i + 1, 2)
		{
			if (i%j == 0)
			{
				i /= j;
				n[j]++;
				break;
			}
		}
	}
	return;
}

int main()
{
	int N;
	cin >> N;

	FOR(i, N + 1, 1)
	{
		count(i);
	}

	ll ans = 1;
	FOR(i, N + 1, 1)
	{
		ans = (ans*(n[i] + 1)) % MOD;
	}

	cout << ans << endl;
	return 0;
}