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)

#include <stdio.h>

static int List[1001];

static int prime(int num);

int main(int argc, char *argv[])
{
	long long c = 1;
	int i, N;
	scanf("%d", &N);

	if ( N == 1 ){
		printf("1\n");
		return 0;
	}

	for ( i = 2; i <= N; i++ ){
		prime(i);
	}

	for ( i = 2; i <= N; i++ ){
		if ( List[i] > 0 ){
			c *= List[i] + 1;
			c %= 1000000007;
		}
	}

	printf("%lld\n", c);
	return 0;
}

static int prime(int num)
{
	int i, mod;

	for ( i = 2, mod = num; mod != 1; i++ ){
		while( mod % i == 0 ){
			mod /= i;
			List[i]++;
		}
	}
	return 0;
}