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.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		sc.close();

		long mod = 1000000007;
		List<Integer> list = new ArrayList<Integer>();
		for(int i = 2; i <= N; i++) {
			boolean flag = true;
			for(int j = 2; j < i; j++) {
				if(i % j == 0) {
					flag = false;
					break;
				}
			}
			if(flag) {
				list.add(i);
			}
		}

		int[]p = new int[list.size()];
		for(int i = 0; i < list.size(); i++) {
			int k = list.get(i);
			for(int j = 2; j <= N; j++) {
				int t = j;
				while(t % k == 0) {
					t /= k;
					p[i]++;
				}
			}
		}
		long cnt = 1;
		for(int i : p) {
			cnt *= (i + 1);
			cnt %= mod;
		}
		System.out.println(cnt);
	}
}