luogu1445 樱花

news/2024/12/2 20:32:12/

樱花

link

不要看原题面,不然你会被情侣虐成狗。看我的简述就行。

题面

人话 :
求方程 1 x + 1 y = 1 n ! \frac{1}{x}+\frac{1}{y}=\frac{1}{n!} x1+y1=n!1 的正整数解,答案对 1 0 9 + 7 10^9+7 109+7 取模。其中 n ∈ [ 1 , 1 0 6 ] n\in[1,10^6] n[1,106]

做法

注:以下所有 x , y , n ∈ Z + x,y,n\in Z^+ x,y,nZ+
我们先来对式子处理一下。可变为:
n ! ( x + y ) = x y n!(x+y)=xy n!(x+y)=xy
但我们又知道 求得 x , y x,y x,y 其中之一就可以求出这一组正整数解,所以我们可以用函数的形式来表示出来:
y ( x − n ! ) = n ! x y(x-n!)=n!x y(xn!)=n!x
还可以变 :
y = n ! x x − n ! y=\frac{n!x}{x-n!} y=xn!n!x
但是这样看不出来什么,我们可以再化简,除去分子上的 x x x ,可得:
y = n ! + ( n ! ) 2 x − n ! y=n!+\frac{(n!)^2}{x-n!} y=n!+xn!(n!)2
如果要有正整数解,那么需要满足:
{ x − n ! > 0 x − n ! ∣ ( n ! ) 2 \begin{cases}x-n!>0\\x-n!\mid (n!)^2\end{cases} {xn!>0xn!(n!)2
如果我们求得满足上面式子 x − n ! x-n! xn! 的个数,那么我们就求得了 x x x 的个数,我们也就求得了 ( x , y ) (x,y) (x,y) 正整数解的个数。
我们又知道 x − n ! ∣ ( n ! ) 2 x-n!\mid (n!)^2 xn!(n!)2 所以说我们就是要求 ( n ! ) 2 (n!)^2 (n!)2 的约数个数,直接套公式即可:
c c c ( n ! ) 2 (n!)^2 (n!)2 的约数个数,满足:
( n ! ) 2 = ∑ i = 1 k p i c i (n!)^2=\sum\limits_{i=1}^{k}{{p_i}^{c_i}} (n!)2=i=1kpici 即可。

代码

#include<cstdio>
typedef long long LL;
#define NUMBER1 1000000
#define P(A) A=-~A
#define fione_i(begin,end) for(register int i=begin;i<=end;P(i))
const LL mod=1e9+7;
int prime[NUMBER1+5],n,cnt(0);
bool pd[NUMBER1+5];
inline void PRIME(){fione_i(2,n){if(!pd[i])prime[++cnt]=i;for(int j=1;prime[j]*i<=n;P(j)){pd[prime[j]*i]=true;if(!(i%prime[j]))break;}}
}
signed main(){LL p;scanf("%d",&n);PRIME();LL ans(1);fione_i(1,cnt){p=0;for(int j=n;j;j/=prime[i])p+=j/prime[i];ans=ans*((p<<1)+1)%mod;}printf("%lld",ans);return 0;
}

http://www.ppmy.cn/news/399767.html

相关文章

新版的Eclipse安装的插件都在哪里?

最近&#xff0c;发现新版Eclipse安装的插件不再像以前那样&#xff0c;安装在目录下的plugins的文件夹下&#xff0c;那么&#xff0c;有时候我们自己下载的离线的插件包要放在哪里呢&#xff0c;像往前版本放在目录下的plugins的文件夹下已经不生效了&#xff1a; 那么问题来…

1624:樱花

const int N1e65;int n,m;double t; int i,j,k;int id[N],prime[N],num;//id[i] 表示i的最小质因数在素数表中的位置int cnt[N];//计算 void init() {for(int i2;i<N;i){if(!id[i]){ prime[num]i; id[i]num; for(int ji*2;j<N;ji){if(!id[j]) id[j]num;}}} } /*void init…

eclipse安装SVN插件(2020最新,亲测可用)

最近要在eclipse上安装一个svn插件&#xff0c;本来以为是很简单的一件事&#xff0c;没想到尝试了很多方法&#xff0c;还是各种不成功 以下是网上常见的解决方案&#xff1a; 第一种&#xff1a;help-> Eclipse Marketplace在线安装 结果&#xff1a;失败&#xff0c;下…

武汉的樱花开了!出不了门别担心,线上带你开樱花![Python画樱花]

武汉的樱花开了&#xff01;出不了门别担心&#xff0c;线上带你"开"樱花&#xff01;[Python画樱花] Python实现部分转载自Soul fragments&#xff1a;https://blog.csdn.net/weixin_43943977/article/details/102691392?utm_sourceapp 阳春三月&#xff0c;草长莺…

【一】win10 下 ElasticSearch8.1.0、Head插件、Kibana下载与安装(图文详解)

以 win10 下安装 8.1.0 版本为例 jdk版本&#xff1a;openjdk 17 D:\> java -version openjdk version "17" 2021-09-14 OpenJDK Runtime Environment (build 1735-2724) OpenJDK 64-Bit Server VM (build 1735-2724, mixed mode, sharing)1、ElasticSearch8.1.0 …

Acwing1294.樱花

文章目录 题意思路代码 题意 给定一个整数n&#xff0c;求有多少正整数对(x, y)满足 1 x 1 y 1 n ! \frac{1}{x} \frac{1}{y} \frac{1}{n!} x1​y1​n!1​ 思路 推公式 ∵ 1 x 1 y 1 n ! . ∴ x ≥ n ! y ≥ n ! . ∴ y k n ! ( k ≥ 1 ) . 1 x 1 y 1 n ! − >…

Luogu P1445[Violet]樱花/P4167 [Violet]樱花

Luogu P1445[Violet]樱花/P4167 [Violet]樱花 真双倍经验 化简原式&#xff1a;\[\frac{1}{x}\frac{1}{y}\frac{1}{n!}\]\[\frac{xy}{xy}n!\]\[xyn!(xy)\]\[-n!(xy)xy0\]\[(n!xn!y)-xy0\]\[(n!)^2(n!xn!y)-xy(n!)^2\]\[(x-n!)(y-n!)(n!)^2\] 所以\((x-n!)\)就是\((n!)^2\)的一个…

断点续传下载引出的http header的range和content-range参数

背景 最近同事在做安卓的断点续传下载&#xff0c;然后遇到了在请求头添加RANGE参数设置时&#xff1a; .addHeader("RANGE", "bytes" downloadLength "-" (contentLength-1))网络上找的资料都是设置contentLength,同时测试后&#xff0c;发…