推导:dalao的blog
CODE:
#include<iostream>
#include<cstdio>
#define ll long long
#define MOD 1000000007
using namespace std;
ll ans=1, cnt[100001];
int n, prime[100001], sf[100001], tot;
void getprime(){
sf[0]=1;
sf[1]=1;
for(int i=2; i<=n; i++){
if(!sf[i])prime[++tot]=i;
for(int j=1; j<=tot; j++){
if(i*prime[j]>n)break;
sf[i*prime[j]]=1;
if(i%prime[j]==0)break;
}
}
}
int main(){
cin>>n;
getprime();
for(int i=1; i<=tot; i++){
cnt[i]=0;
for(ll j=prime[i]; j<=n; j*=prime[i]) cnt[i]+=n/j;
cnt[i]%=MOD;
}
for(int i=1; i<=tot; i++)
ans=ans*(cnt[i]*2+1)%MOD;
printf("%lld", ans);
return 0;
}