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.8.2) (judge verdict: Runtime Error)

import sys
input = sys.stdin.readline
# sys.setrecursionlimit(100000)


def get_prime(N, prime):
    if N < 2:
        return {1: 1}

    i = 2
    while i * i <= N:
        while N % i == 0:
            if i in prime.keys():
                prime[i] += 1
            else:
                prime[i] = 1
            N = N // i
        i += 1
    if N != 1:
        prime[N] = 1
    return prime


def main():
    N = int(input().strip())
    div_table = [1] * (N + 1)
    MOD = 10**9 + 7
    ans = 0
    for i in range(2, N + 1):
        for j in range(i, N + 1, i):
            div_table[j] += 1

    prime = dict()
    prime[1] = 1

    for i in range(1, N + 1):
        if div_table[i] == 2:
            prime = get_prime(i, prime)
    ans = 1
    for k, v in prime:
        ans *= v
        ans %= MOD

    print(ans)


if __name__ == "__main__":
    main()