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;
import java.util.HashMap;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		final int N = sc.nextInt();
		final long MOD = 1000000007;
		HashMap<Integer, Integer> primes = new HashMap<Integer, Integer>();

		for (int i = 2; i <= N; i++) {
			if (isPrime(i)) {
				primes.put(i, 0);
			}
		}
		for (int i=1; i<=N; i++) {
			int n = i;
			while (n>1) {
				for (Integer p: primes.keySet()) {
					if (n%p ==0) {
						primes.put(p, primes.get(p)+1);
						n /= p;
					}
				}
			}
		}
		
		long count = 1;
		for (Integer p: primes.keySet()) {
			count = (count * (1+primes.get(p))) % MOD;
		}
		System.out.println(count);
		sc.close();
	}

	private static boolean isPrime(int n) {
		if (n == 1 || n == 2) {
			return true;
		} else {
			for (int i = 2; i < Math.sqrt(n) + 1; i++) {
				if (n % i == 0)
					return false;
			}
		}
		return true;
	}
}