ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【BZOJ2721】樱花(数论)

2019-04-20 11:40:17  阅读:313  来源: 互联网

标签:樱花 BZOJ2721 frac int MAX 数论 include displaystyle


【BZOJ2721】樱花(数论)

题面

BZOJ

题解

先化简一下式子,得到:\(\displaystyle n!(x+y)=xy\),不难从这个式子中得到\(x,y\gt n!\)。
然后通过\(x\)来表示\(y\),得到\(\displaystyle y=\frac{n!x}{x-n!}\)。令\(x=n!+p\),得到\(\displaystyle y=\frac{n!(n!+p)}{p}=\frac{(n!)^2}{p}+n!\)。
因为\(x,y\)都是整数,得到\(p|(n!)^2\)。
于是问题变成了求约数个数,那么考虑每一个质因子的出现次数就行了。

#include<iostream>
#include<cstdio>
using namespace std;
#define MAX 1000100
#define MOD 1000000007
int n,ans=1;
bool zs[MAX];
int main()
{
    cin>>n;
    for(int i=2;i<=n;++i)
        if(!zs[i])
        {
            for(int j=i+i;j<=n;j+=i)zs[j]=true;
            int p=n,s=0;
            while(p)s=(s+p/i*2)%MOD,p/=i;
            ans=1ll*ans*(s+1)%MOD;
        }
    cout<<ans<<endl;
    return 0;
}

标签:樱花,BZOJ2721,frac,int,MAX,数论,include,displaystyle
来源: https://www.cnblogs.com/cjyyb/p/10740352.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有