#include<iostream>
#include <cmath>
#include <vector>
#include <numeric>
using namespace std;
const long long Mod = 1000000007;
int main()
{
long long n;
cin >> n;
long long m = n;
vector<long long> v;
if (n == 1)cout << 1 << endl;
else
{//分解质因数
for (int i = 2; i <= n; ++i)
{
if (n % i == 0)
{
long long s = 0;
while (n % i == 0)
{
n /= i;
s++;
}
v.push_back((s * m + 1) % Mod);
}
}
cout << accumulate(v.begin(), v.end(), 1, [](long long x, long long y)
{ return (x * y) % Mod; }) << endl;
}
return 0;
}