import math

n=int(eval(input()))

waru=10**9+7



li=[]

li2=[]



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

    tmp=math.factorial(n)

    flag=1

    for j in range(len(li)):

        if i%li[j]==0:

            flag=0

            break

    if flag==1:

        li.append(i)

        li2.append(0)

        while tmp%i==0:

            li2[len(li)-1]+=1

            tmp=tmp//i

ans=1

# print(li)

# print(li2)

for i in range(len(li2)):

    ans*=li2[i]+1

print((ans%waru))
import sys

from collections import *

import heapq

import math

import bisect

from itertools import permutations,accumulate,combinations,product

from fractions import gcd

def input():

    return sys.stdin.readline()[:-1]

def ruiseki(lst):

    return [0]+list(accumulate(lst))

mod=pow(10,9)+7

al=[chr(ord('a') + i) for i in range(26)]



def factorization(n):

    arr = []

    temp = n

    for i in range(2, int(-(-n**0.5//1))+1):

        if temp%i==0:

            cnt=0

            while temp%i==0:

                cnt+=1

                temp //= i

            arr.append([i, cnt])

    if temp!=1:

        arr.append([temp, 1])

    if arr==[]:

        arr.append([n, 1])

    return arr



n=int(eval(input()))

if n==1:

    print((1))

    exit()

d=defaultdict(int)

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

    tmp=factorization(i)

    for j in tmp:

        yaku,ko=j

        d[yaku]+=ko

# print(d)

ans=1

for i in list(d.values()):

    ans*=i+1

    ans%=mod

print(ans)
import math

n = int(eval(input()))
waru = 10**9 + 7
li = []
li2 = []
for i in range(2, n + 1):
    tmp = math.factorial(n)
    flag = 1
    for j in range(len(li)):
        if i % li[j] == 0:
            flag = 0
            break
    if flag == 1:
        li.append(i)
        li2.append(0)
        while tmp % i == 0:
            li2[len(li) - 1] += 1
            tmp = tmp // i
ans = 1
# print(li)
# print(li2)
for i in range(len(li2)):
    ans *= li2[i] + 1
print((ans % waru))

import sys
from collections import *
import heapq
import math
import bisect
from itertools import permutations, accumulate, combinations, product
from fractions import gcd


def input():
    return sys.stdin.readline()[:-1]


def ruiseki(lst):
    return [0] + list(accumulate(lst))


mod = pow(10, 9) + 7
al = [chr(ord("a") + i) for i in range(26)]


def factorization(n):
    arr = []
    temp = n
    for i in range(2, int(-(-(n**0.5) // 1)) + 1):
        if temp % i == 0:
            cnt = 0
            while temp % i == 0:
                cnt += 1
                temp //= i
            arr.append([i, cnt])
    if temp != 1:
        arr.append([temp, 1])
    if arr == []:
        arr.append([n, 1])
    return arr


n = int(eval(input()))
if n == 1:
    print((1))
    exit()
d = defaultdict(int)
for i in range(2, n + 1):
    tmp = factorization(i)
    for j in tmp:
        yaku, ko = j
        d[yaku] += ko
# print(d)
ans = 1
for i in list(d.values()):
    ans *= i + 1
    ans %= mod
print(ans)

+import sys +from collections import * +import heapq +import bisect +from itertools import permutations, accumulate, combinations, product +from fractions import gcd + + +def input(): +    return sys.stdin.readline()[:-1] + + +def ruiseki(lst): +    return [0] + list(accumulate(lst)) + + +mod = pow(10, 9) + 7 +al = [chr(ord("a") + i) for i in range(26)] + + +def factorization(n): +    arr = [] +    temp = n +    for i in range(2, int(-(-(n**0.5) // 1)) + 1): +        if temp % i == 0: +            cnt = 0 +            while temp % i == 0: +                cnt += 1 +                temp //= i +            arr.append([i, cnt]) +    if temp != 1: +        arr.append([temp, 1]) +    if arr == []: +        arr.append([n, 1]) +    return arr + -waru = 10**9 + 7 -li = [] -li2 = [] +if n == 1: +    print((1)) +    exit() +d = defaultdict(int) -    tmp = math.factorial(n) -    flag = 1 -    for j in range(len(li)): -        if i % li[j] == 0: -            flag = 0 -            break -    if flag == 1: -        li.append(i) -        li2.append(0) -        while tmp % i == 0: -            li2[len(li) - 1] += 1 -            tmp = tmp // i +    tmp = factorization(i) +    for j in tmp: +        yaku, ko = j +        d[yaku] += ko +# print(d) -# print(li) -# print(li2) -for i in range(len(li2)): -    ans *= li2[i] + 1 -print((ans % waru)) +for i in list(d.values()): +    ans *= i + 1 +    ans %= mod +print(ans)