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 Java8 (OpenJDK 1.8.0) (judge verdict: Accepted)

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		long d = (int)Math.pow(10, 9)+7;
		sc.close();


		int prime[] = new int[1001];
		int primes[] = new int[1001];
		int k = 0;

		for(int i=2;i<1001;i++){
			prime[i] = 1;
			primes[i] = 0;
		}
		for(int i=2;i<1001;i++){
			if(prime[i] == 0) continue;
			primes[k++] = i;
			int j = 2;
			while(i*j<1001){
				prime[i*j] = 0;
				j++;
			}
		}

		long factorials[] = new long[k];
		for(int i=0;i<k;i++) factorials[i] = 1;
		for(int i=2;i<=n;i++){
			int num = i;
			for(int j=0;j<k;j++){
				while(num%primes[j]==0){
					factorials[j] ++;
					num /= primes[j];
					if(num == 1) break;
				}
			}
		}
		long answer = 1;
		for(int i=0;i<k;i++){
			answer *= factorials[i];
			answer %= d;
		}

		System.out.println(answer);
	}

}