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++14 (GCC 5.4.1) (judge verdict: Wrong Answer)

#include<bits/stdc++.h>
using namespace std;

const int N =1e3+5;
bool prime[N];
vector<int>v;
long long mod = 1e9+5;

void seive()
{
   for(int i=1;i<=N;i++)prime[i]=true;

   for(int i=2;i*i<=N;i++)
   {
       if(prime[i]==true)
       {
           for(int j=i*2;j<=N;j+=i)
           {
               prime[j]=false;
           }
       }
   }
 //  for(int i=2;i<=N;i++)if(prime[i])v.push_back(i);
}

int main()
{
    seive();
    int n;
    cin>>n;
    int arr[n+5];
    for(int i=1;i<=n;i++)arr[i]=i;
    map<int,int>mp;

   for(int i=2;i<=n;i++)
   {
       if(prime[i])
       {
           for(int j=1;j<=n;j++)
           {
               while(arr[j]%i==0)
               {
                   arr[j]/=i;
                   mp[i]++;
               }
           }
       }
   }

   long long sum=1;

   for(int i=1;i<=n;i++)
   {
       if(prime[i])
       {
          // cout<<mp[i]<<endl;
           sum*=(mp[i]+1);
           sum=sum%mod;
       }
   }
   cout<<sum<<endl;
}