import collections



MOD = (10 ** 9 + 7)



n = int(eval(input()))

p = [True for i in range(n+1)]

p[0] = False

p[1] = False

pf = collections.defaultdict(int)

for i in range(2, n+1):

    if not p[i]:

        continue

    j = i * i

    while j <= n:

        p[j] = False

        j += i

    cnt = 1

    v = i

    while v <= n:

        cnt += n//v

        v *= i

    pf[i] = cnt

total = 1

for v in list(pf.values()):

    total = (total * v) % MOD



print(total)
import collections

MOD = 10**9+7

def list_prime(n):

    if n < 2:

        return []

    elif n == 2:

        return [2]

    is_prime = [True for i in range(n+1)]

    is_prime[0] = False

    is_prime[1] = False

    for i in range(2, n):

        for j in range(i*i, n+1, i):

            is_prime[j] = False

    prime = []

    for i in range(n+1):

        if is_prime[i]:

            prime.append(i)

    return prime



def cnt_factor(n, p):

    cnt = 0

    pi = p

    while pi <= n:

        cnt += n //pi

        pi *= p

    return cnt



n = int(eval(input()))

p_list = list_prime(n)

cnt = 1

for p in p_list:

    cnt = cnt * (cnt_factor(n, p)+1) % MOD

print(cnt)
import collections

MOD = 10**9 + 7
n = int(eval(input()))
p = [True for i in range(n + 1)]
p[0] = False
p[1] = False
pf = collections.defaultdict(int)
for i in range(2, n + 1):
    if not p[i]:
        continue
    j = i * i
    while j <= n:
        p[j] = False
        j += i
    cnt = 1
    v = i
    while v <= n:
        cnt += n // v
        v *= i
    pf[i] = cnt
total = 1
for v in list(pf.values()):
    total = (total * v) % MOD
print(total)

import collections

MOD = 10**9 + 7


def list_prime(n):
    if n < 2:
        return []
    elif n == 2:
        return [2]
    is_prime = [True for i in range(n + 1)]
    is_prime[0] = False
    is_prime[1] = False
    for i in range(2, n):
        for j in range(i * i, n + 1, i):
            is_prime[j] = False
    prime = []
    for i in range(n + 1):
        if is_prime[i]:
            prime.append(i)
    return prime


def cnt_factor(n, p):
    cnt = 0
    pi = p
    while pi <= n:
        cnt += n // pi
        pi *= p
    return cnt


n = int(eval(input()))
p_list = list_prime(n)
cnt = 1
for p in p_list:
    cnt = cnt * (cnt_factor(n, p) + 1) % MOD
print(cnt)

+ + +def list_prime(n): +    if n < 2: +        return [] +    elif n == 2: +        return [2] +    is_prime = [True for i in range(n + 1)] +    is_prime[0] = False +    is_prime[1] = False +    for i in range(2, n): +        for j in range(i * i, n + 1, i): +            is_prime[j] = False +    prime = [] +    for i in range(n + 1): +        if is_prime[i]: +            prime.append(i) +    return prime + + +def cnt_factor(n, p): +    cnt = 0 +    pi = p +    while pi <= n: +        cnt += n // pi +        pi *= p +    return cnt + + -p = [True for i in range(n + 1)] -p[0] = False -p[1] = False -pf = collections.defaultdict(int) -for i in range(2, n + 1): -    if not p[i]: -        continue -    j = i * i -    while j <= n: -        p[j] = False -        j += i -    cnt = 1 -    v = i -    while v <= n: -        cnt += n // v -        v *= i -    pf[i] = cnt -total = 1 -for v in list(pf.values()): -    total = (total * v) % MOD -print(total) +p_list = list_prime(n) +cnt = 1 +for p in p_list: +    cnt = cnt * (cnt_factor(n, p) + 1) % MOD +print(cnt)