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 (GCC 5.4.1) (judge verdict: Accepted)

#include <stdio.h>
int main(void){
    int loop1,loop2;
    int n;
    scanf("%d",&n);
    //素因数分解
    if(n==1){
        printf("1\n");
        return 0;
    }
    int enz[1001]={0};
    for(loop1=2;loop1<=n;loop1++){
        int temp=loop1;
        int a=2;
        while(temp>=a*a){
            if(temp%a==0){
                enz[a]++;
                temp=temp/a;
            }else{
                a++;
            }
        }
        enz[temp]++;
    }
    long long int ans=1;
    for(loop1=2;loop1<1000;loop1++){
        if(enz[loop1]!=0){
            ans*=(enz[loop1]+1);
            ans%=1000000007;
        }
    }
    printf("%lld\n",ans);
    return 0;
}