#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<queue>
#include<vector>
#include<map>
#include<unordered_map>
#include<string>
#include<cctype>
#include<stack>
using namespace std;
bool isprime(int x) {
if (x < 2) return false;
int sq = sqrt(x);
for (int i = 2; i <= sq; ++i) {
if (x%i == 0) return false;
}
return true;
}
int main() {
long long ans = 1, n;
cin >> n;
const int maxn = 10e6 + 4;
bool vis[maxn] = { 0 };
for (int i = 2; i <= n; ++i) {
if (!isprime(i)||vis[i]) continue;
int cnt = 0;
long long mi = i;
while (mi <= n) {
cnt++;
vis[mi] = true;
mi *= i;
}
ans = ans * (cnt + 1) % 1000000007;
}
cout << ans;
return 0;
}