def solve():

    n = int(eval(input()))

    d = {}

    mod = 10**9+7

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

        d[i] = 0

    

    def prime_factorize(n):

        a = []

        while n % 2 == 0:

            a.append(2)

            n //= 2

        f = 3

        while f * f <= n:

            if n % f == 0:

                a.append(f)

                n //= f

            else:

                f += 2

        if n != 1:

            a.append(n)

        return a

    

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

        ps = prime_factorize(i)

        for p in ps:

            d[p] += 1

    

    ans = 1

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

        if d[i] >= 1:

            ans *= (d[i]+1)

        

    

    print((ans%mod))

        

        

if __name__ == '__main__':

    solve()
n = int(eval(input()))

from collections import defaultdict

p = defaultdict(int)



def f(n):

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

        x = 0

        while n%i == 0:

            n //= i

            x += 1

        if x:

            p[i] += x

    

    if n > 1:

        p[n] += 1



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

    f(i)



from functools import reduce

mod = 10**9+7

print((reduce(lambda x, y:x*(y+1), list(p.values()), 1)%mod))

def solve():
    n = int(eval(input()))
    d = {}
    mod = 10**9 + 7
    for i in range(1, n + 1):
        d[i] = 0

    def prime_factorize(n):
        a = []
        while n % 2 == 0:
            a.append(2)
            n //= 2
        f = 3
        while f * f <= n:
            if n % f == 0:
                a.append(f)
                n //= f
            else:
                f += 2
        if n != 1:
            a.append(n)
        return a

    for i in range(1, n + 1):
        ps = prime_factorize(i)
        for p in ps:
            d[p] += 1
    ans = 1
    for i in range(1, n + 1):
        if d[i] >= 1:
            ans *= d[i] + 1
    print((ans % mod))


if __name__ == "__main__":
    solve()

n = int(eval(input()))
from collections import defaultdict

p = defaultdict(int)


def f(n):
    for i in range(2, int(n**0.5) + 1):
        x = 0
        while n % i == 0:
            n //= i
            x += 1
        if x:
            p[i] += x
    if n > 1:
        p[n] += 1


for i in range(2, n + 1):
    f(i)
from functools import reduce

mod = 10**9 + 7
print((reduce(lambda x, y: x * (y + 1), list(p.values()), 1) % mod))

-def solve(): -    n = int(eval(input())) -    d = {} -    mod = 10**9 + 7 -    for i in range(1, n + 1): -        d[i] = 0 +n = int(eval(input())) +from collections import defaultdict -    def prime_factorize(n): -        a = [] -        while n % 2 == 0: -            a.append(2) -            n //= 2 -        f = 3 -        while f * f <= n: -            if n % f == 0: -                a.append(f) -                n //= f -            else: -                f += 2 -        if n != 1: -            a.append(n) -        return a - -    for i in range(1, n + 1): -        ps = prime_factorize(i) -        for p in ps: -            d[p] += 1 -    ans = 1 -    for i in range(1, n + 1): -        if d[i] >= 1: -            ans *= d[i] + 1 -    print((ans % mod)) +p = defaultdict(int) -if __name__ == "__main__": -    solve() +def f(n): +    for i in range(2, int(n**0.5) + 1): +        x = 0 +        while n % i == 0: +            n //= i +            x += 1 +        if x: +            p[i] += x +    if n > 1: +        p[n] += 1 + + +for i in range(2, n + 1): +    f(i) +from functools import reduce + +mod = 10**9 + 7 +print((reduce(lambda x, y: x * (y + 1), list(p.values()), 1) % mod))