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 <stdio.h>

int main() {
	int n;
	scanf("%d", &n);
	const long int a=1000000007;
    int prime[n+1];
    int i, j;

    for (i = 2; i <= n; i++) {
      prime[i] = 1;
    }
    for (i = 2; i <= n; i++) {
      if (prime[i]) {
        for (j = i*2; j <= n; j += i) {
          prime[j] = 0;
        }
      }
    }
    for (i = 2; i <= n; i++) {
      if (prime[i]) {
        prime[i] = 0;
        for (j = i; j <= n; j *= i) {
          prime[i] += n/j;
        }
      }
    }
	int ans=1;
	int tmp;
	for(i=2; i<=n; i++){
		if(prime[i] != 0) {
			tmp = (ans*((prime[i]+1)%a))%a;
			ans = tmp;
		}
	}
	printf("%d", ans);
	return 0;
}