bzoj2721 / P1445 [Violet]樱花

P1445 [Violet]樱花

显然x,y>n

那么我们可以设a=n!,y=a+t(t>0)

再对原式通分一下a(a+t)+ax=x(a+t)

a2+at+ax=ax+tx

x=a2/t+a

x=(n!)2/t+n!

再根据唯一分解定理

(n!)2=q1p1q2p2q3p3......qmpm

(n!)2分解质因数一下

最后乘法原理套上去

end.

复制代码
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #define re register
 5 using namespace std;
 6 #define N 1000002
 7 const int mod=1e9+7;
 8 int n,v[N],pri[N],cct,ans=1;
 9 int main(){
10     scanf("%d",&n);
11     for(re int i=2;i<=n;++i){
12         if(!v[i]) v[i]=pri[++cct]=i;
13         for(re int j=1;j<=cct;++j){
14             if(pri[j]>i||pri[j]*i>n) break;
15             v[pri[j]*i]=pri[j];
16         }
17     }
18     for(re int i=1;i<=cct;++i){
19         long long cnt=0;
20         for(re int j=n;j;j/=pri[i]) cnt+=j/pri[i];
21         cnt=cnt<<1|1;
22         ans=1ll*ans*cnt%mod;
23     }printf("%d",ans);
24     return 0;
25 }
View Code
复制代码

 

posted @   kafuuchino  阅读(163)  评论(0编辑  收藏  举报
编辑推荐:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
阅读排行:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
点击右上角即可分享
微信分享提示