发现不会markdown捉急啊
hzwer的题解:
“设n!=z,y=z+d
#include<cstdio>
#include<cstdlib>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N=1000005,P=1000000007;
int n;
int num,prime[N],vst[N];
int q[N];
inline void Pre()
{
for(int i=2;i<=n;i++)
{
if(!vst[i])
prime[++num]=i;
for(int j=1;prime[j]*i<=n && j<=num;j++)
{
vst[prime[j]*i]=1;
if(i%prime[j]==0) break;
}
}
}
inline void Calc(int p,int idx){
for (ll t=p;t<=n;t*=p)
q[idx]+=n/t;
}
int main()
{
freopen("t.in","r",stdin);
freopen("t.out","w",stdout);
ll ans=1;
scanf("%d",&n);
Pre();
for (int i=1;i<=num;i++)
Calc(prime[i],i);
for (int i=1;i<=num;i++)
ans=ans*(q[i]*2+1)%P;
printf("%lld\n",ans);
return 0;
}