import std.stdio, std.string, std.array, std.conv, std.algorithm, std.typecons, std.range, std.container, std.math, std.algorithm.searching, std.functional,std.mathspecial;

void main(){
    auto N=readln.chomp.to!int;
    if(N==1){
        writeln(1);
        return;
    }

    long[int] divs;

    auto primes=get_primes(N);

    foreach(p;primes){
        divs[p]=0;
    }

    foreach(n;2..N+1){
        foreach(p;primes){
            while(n%p==0){
                n/=p;
                divs[p]++;
            }
            if(n==1)break;
        }
    }

    auto res=1L;
    foreach(d;divs.values){
        res=res*(d+1)%1000000007;
    }

    writeln(res);
}

int[] get_primes(int max){
    int[] ps;
    foreach(n;2..max+1){
        if(isPrime(n,ps))ps~=n;
    }
    return ps;
}

bool isPrime(int n, int[] prims){
    foreach(p;prims){
        if(n%p==0)return false;
    }
    return true;
}