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 Python (3.4.3) (judge verdict: Accepted)

import sys
input = sys.stdin.readline

def main():
    N = int(input())

    MOD = int(1e9) + 7

    MAX_PRIME = N
    primes = []
    is_prime = [True] * (MAX_PRIME+1)
    for i in range(2, MAX_PRIME+1):
        if is_prime[i]:
            primes.append(i)
            for j in range(2*i, MAX_PRIME+1, i):
                is_prime[j] = False
    
    count = [0] * len(primes)
    for i in range(2, N+1):
        tmp = i
        for j in range(len(primes)):
            while tmp%primes[j] == 0:
                count[j] += 1
                tmp //= primes[j]
    
    ans = 1
    for c in count:
        if c > 0:
            ans *= c+1
            ans %= MOD
    print(ans)


if __name__ == "__main__":
    main()