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 Java7 (OpenJDK 1.7.0) (judge verdict: Accepted)

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Main
{	
	public static void main(String[] args)
	{
		Scanner scan = new Scanner(System.in);
	
		long MOD = 1000000007;
		
		Map<Integer , Integer> map = new HashMap<Integer , Integer>();
		int n = scan.nextInt();
		for (int i = 1;i <= n;i ++)
		{
			int value = i;
			for (int j = 2;j <= n;j ++)
			{
				if (value % j == 0)
				{
					int cnt = 0;
					while (value % j == 0)
					{
						value /= j;
						cnt ++;
					}
					if (!map.containsKey(j))
						map.put(j , 0);
					map.put(j , map.get(j) + cnt);
				}
			}
		}
		
		long ans = 1;
		for (int value : map.values())
			ans = (ans * (value + 1)) % MOD;
		System.out.println(ans);
	}
    
}