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 PyPy3 (2.4.0) (judge verdict: Accepted)

from collections import defaultdict
element = defaultdict(int)
def is_prime(n):
    if n == 1:
        return False
    for k in range(2, int(n**0.5) + 1):
        if n % k == 0:
            return False
    return True

def make_divisors(n):
    divisors = []
    for i in range(1, int(n**0.5) + 1):
        if n % i == 0:
            divisors.append(i)
            if i != n // i:
                divisors.append(n // i)

    divisors.sort()
    return divisors
ans = 1
N = int(input())
for num in range(1, N+1):
    div = make_divisors(num)
    while num > 1:
        for d in div[1:]:
            if num % d == 0:
                element[d] += 1
                num //= d
                break
    # print(num, element)
for v in element.values():
    ans *= (v+1)
    ans %= (10**9+7)
print(ans)