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# (Mono 4.6.2.0) (judge verdict: Accepted)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ProgrammingContest_CSharp
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            long ans = Solve(n);
            Console.WriteLine(ans);
        }

        private static long Solve(int n)
        {
            var dic = new Dictionary<int, int>();

            for (int i = 2; i <= n; i++)
            {
                int value = i;

                for (int j = 2; j <= i; j++)
                {
                    while (value % j == 0)
                    {
                        if (!dic.ContainsKey(j))
                        {
                            dic.Add(j, 0);
                        }

                        dic[j]++;
                        value /= j;
                    }
                }
            }

            long ans = 1;
            const long Mod = 1000000000 + 7;

            foreach (var num in dic.Values)
            {
                ans = (ans * (num + 1)) % Mod;
            }

            return ans;
        }
    }
}