概述
思路:
容易推出
y
=
x
n
!
x
−
n
!
y= frac{xn!}{x-n!}
y=x−n!xn!
设
t
=
x
−
n
!
t=x-n!
t=x−n!
那么
y
=
n
!
+
(
n
!
)
2
t
y=n!+frac{(n!)^2}{t}
y=n!+t(n!)2
所以只要
t
t
t是
(
n
!
)
2
(n!)^2
(n!)2的约数就行
直接求
c o d e code code
#include<iostream>
#include<cstdio>
using namespace std;
long long n, q;
long long s[6001000], c[6001000];
bool b[100000001];
void p(long long n)
{
for(long long i=2; i<=n; i++)
{
if(b[i]==0)
{
s[0]++;
s[s[0]]=i;
}
for(long long j=1; j<=s[0]&&i*s[j]<=n; j++)
{
b[i*s[j]]=1;
if(i%s[j]==0)
break;
}
}
}
int main()
{
scanf("%lld", &n);
long long m=1e9+7;
p(n);
for(long long i=1; i<=s[0]; i++)
for(long long j=s[i]; j<=n; j*=s[i])
c[i]=(c[i]+n/j)%m;
long long ans=1;
for(long long i=1; i<=s[0]; i++)
ans=ans*(c[i]*2+1)%m;
printf("%lld", ans);
return 0;
}
最后
以上就是优秀酸奶为你收集整理的【YBTOJ】不定方程 c o d e code code的全部内容,希望文章能够帮你解决【YBTOJ】不定方程 c o d e code code所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复