求不定方程:
1
x
+
1
y
=
1
n
!
\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}
x1?+y1?=n!1?
的正整数解 (x,y) 的数目。
一个整数 n。
一个整数,表示有多少对 ( x , y ) (x,y) (x,y) 满足题意。答案对 1 0 9 + 7 10^9+7 109+7 取模。
2
3
共有三个数对
(
x
,
y
)
(x,y)
(x,y) 满足条件,分别是
(
3
,
6
)
(3,6)
(3,6),
(
4
,
4
)
(4,4)
(4,4) 和
(
6
,
3
)
(6,3)
(6,3)。对于
30
30
30% 的数据,
n
≤
100
n≤100
n≤100;
对于全部数据,
1
≤
n
≤
1
0
6
1≤n≤10^6
1≤n≤106。
#include <bits/stdc++.h>
using namespace std;
const int N=1e9+7;
long long n,k,s=1,l[2000000];
int main() {
cin >>n;
for (int i=2;i<=n;i++) {
int t=i;
for (int j=2;j*j<=t && t>0;j++) {
while (t%j==0) {
t/=j;
l[j]++;
}
}
if (t>1) l[t]++;
}
for (int i=2;i<=n;i++) {
l[i]*=2;
l[i]+=1;
}
for (int i=2;i<=n;i++) {
s=s*l[i]%N;
}
cout <<s%N;
return 0;
}