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;

namespace ABC052C
{
    class Program
    {
        static readonly int Mod = 1000000007;

        static void Main(string[] args)
        {
            uint n = UInt32.Parse(Console.ReadLine());
            int[] sups = new int[n + 1];
            for(int i = 2; i <= n; i++)
            {
                sups[i] = 1;
            }

            long res = 1;

            for (int i = 2; i <= n; i++)
            {
                int j = i;
                int k = 2;
                while (j > 1)
                {
                    if (j % k == 0)
                    {
                        sups[k]++;
                        j /= k;
                    }
                    else
                    {
                        k = NextPrime(k);
                    }
                }
            }

            for (int i = 2; i <= n; i++)
            {
                res = (res * sups[i]) % Mod;
            }

            Console.WriteLine(res);
            return;
        }

        static bool IsPrime(int num)
        {
            if ((num > 2) && ((num % 2) == 0)) return false;
            for (int i = 3; i <= (num / 3); i += 2)
            {
                if (num % i == 0)
                {
                    return false;
                }
            }
            return true;
        }

        static int NextPrime(int num)
        {
            int i = num + 1 + (num % 2);
            while (!IsPrime(i))
            {
                i += 2;
            }
            return i;
        }

    }
}