RT,球调简单数学,马蜂良好
#include<bits/stdc++.h>
using namespace std;
#define ull unsigned long long
void openfile(){
freopen("equation.in","r",stdin);
freopen("equation.out","w",stdout);
}//考试时写的,忘删了
ull n,pri[1000005],vis[1000005],l,cnt;
ull c[1000005],ans=1;
const ull mod=1e9+7;
void ispri(ull x){
for(ull i=2;i<=n;i++){
if(vis[i]==0){
vis[i]=i;
pri[++l]=i;
}
for(ull j=1;j<=l;j++){
if(pri[j]<=vis[i]&&pri[j]<=n/i){
vis[i*pri[j]]=pri[j];
}
}
}
}//欧拉筛
int main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
cin>>n;
ispri(n);
for(ull i=2;i<=n;i++){
cnt=1;
if(vis[i]!=i){
continue;
}
while(cnt<=n){
cnt*=i;
c[i]+=n/cnt;
}
}
for(ull i=2;i<=n;i++){
ans=(ans*(2*c[i]+1))%mod;
}//唯一分解定理
cout<<ans<<"\n";
return 0;
}