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 (GCC 5.4.1) (judge verdict: Accepted)

/* Coached by Dukkha */
#include <stdio.h>

#define N 1000
#define MD 1000000007

int solve(int n, int p) {
	return n < p ? 0 : n / p + solve(n / p, p);
}

int main() {
	static char composite[N + 1];
	int n, a, b;
	long long p;

	scanf("%d", &n);
	p = 1;
	for (a = 2; a <= n; a++) {
		if (composite[a])
			continue;
		p = p * (solve(n, a) + 1) % MD;
		for (b = a * a; b <= n; b += a)
			composite[b] = 1;
	}
	printf("%lld\n", p);
	return 0;
}