一顿分析推导之后的本质就是求(n!)^2的约数的个数
具体推导过程参考yls视频和-〉这位大佬
C++ 代码
#include "iostream"
using namespace std;
typedef long long LL;
const int N = 1e6+10, mod = 1e9+7;
int prime[N],cnt;
bool st[N];
void Prime(int n){
for(int i = 2; i <= n; ++i){
if(!st[i]) prime[cnt ++ ] = i;
for(int j = 0; prime[j] <= n/i; ++j){
st[prime[j] * i] = 1;
if( i % prime[j] == 0) break;
}
}
}
int main(){
int n,res = 1;
cin >> n;
Prime(n);
for(int i = 0; i < cnt; ++i){
int p = prime[i];
int s= 0;
for(int j = n; j; j/=p) s+=j/p;
res = (LL)res * (2* s + 1) % mod;
}
cout <<res<<endl;
}