【洛谷】P1445 没占到1444的愤怒
继续洛谷刷水日常,突然遇到一道不是很水的题目……
https://www.luogu.org/problem/show?pid=1445
题意:给定n(1<=n<=1000000),求方程1/x+1/y=1/n!的正整数解的个数。
思考了5min后,就去看题解了……
Qrc:这也太弱了……
【思路】
原方程可变形为:
xy/(x+y)=n!
xy-(x+y)n!=0,配方后,得:
(x-n!)(y-n!)=(n!)^2
所以求出(n!)^2的因数个数即可,又由于因数定理(正整数的因数个数等于其所有质因数幂次+1的乘积),只要求出其质因数及幂次即可
又:(n!)^2的每个质因数的幂次都是n!的质因数的2倍
同理,n!的质因数幂次是1~n每个数质因数幂次的“和”
所以对1~n中所有数求出质因数及幂次即可
先筛出1~n中所有的质数
再对每一个质数判断,1~n中,它作为质因数出现了几次?
下面贴上代码:
1 #include<cstdio>
2 const int M=1e9+7;
3 int n,primes[5000001],num=0,Ans=1;
4 bool isntprime[10000001]={1,1};
5 void prime1(){//线性筛法
6 for(int i=2;i<=n;++i){
7 if(!isntprime[i])primes[++num]=i;
8 for(int j=1;j<=num&&i*primes[j]<=n;++j){
9 isntprime[i*primes[j]]=1;
10 if(!(i%primes[j]))break;
11 }
12 }
13 }
14 int main(){
15 scanf("%d",&n);
16 prime1();
17 for(int i=1;i<=num;++i){
18 int prime=primes[i],c=0;
19 for(long long j=prime;j<=n;j*=prime)
20 c+=n/j;//必须对prime的若干次幂都进行一遍,这样不会漏掉包含其多次幂的数
21 Ans=1ll*Ans*(c*2+1)%M;
22 }
23 printf("%d",Ans);
24 return 0;
25 }
【洛谷】P1445 没占到1444的愤怒的更多相关文章
- 洛谷P1445 [Violet] 樱花 (数学)
洛谷P1445 [Violet] 樱花 题目背景 我很愤怒 题目描述 求方程 1/X+1/Y=1/(N!) 的正整数解的组数,其中N≤10^6. 解的组数,应模1e9+7. 输入输出格式 输入格式: ...
- 【题解】洛谷P1445 [Violet]樱花 (推导+约数和)
洛谷P1445:https://www.luogu.org/problemnew/show/P1445 推导过程 1/x+1/y=1/n! 设y=n!+k(k∈N∗) 1/x+1/(n!+k)=1 ...
- 洛谷P1445 樱花
题意:求 1/x + 1/y = 1/(n!)的正整数解个数. 解:神仙...... 设(n!) = t 打表发现 x ∈ [t+1 , 2t] 反正就是拿到式子以后乱搞一通然后发现得到了这个很美观的 ...
- 【洛谷 P1445】 [Violet]樱花(唯一分解定理)
做了题还是忍不住要写一发题解,感觉楼下的不易懂啊. 本题解使用latex纯手写精心打造. 题意:求\(\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}\)的正整数解总数. 首先 ...
- 洛谷 P1445 [Violet]樱花
#include<cstdio> #include<algorithm> #include<cstring> #include<vector> usin ...
- 洛谷P1198 [JSOI2008]最大数
P1198 [JSOI2008]最大数 267通过 1.2K提交 题目提供者该用户不存在 标签线段树各省省选 难度提高+/省选- 提交该题 讨论 题解 记录 最新讨论 WA80的戳这QwQ BZOJ都 ...
- [洛谷P1198/BZOJ1012][JSOI2008] 最大数 - 树状数组/线段树?
其实已经学了树状数组和线段树,然而懒得做题,所以至今没写多少博客 Description 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询当前数列中末尾L个数 ...
- 洛谷 P1039侦探推理
/* 枚举罪犯和星期几,那么所有人说的话是真是假一目了然. 首先一个人不能既说真话又说假话. 即: I am guilty. I am not guilty. 因为非真即假,所以直接判断impossi ...
- 洛谷 P1640 [SCOI2010]连续攻击问题
洛谷 一句话题意: 每个武器有两种属性,每种武器只能选择一种属性,从属性1连续递增才算攻击,求最大连续攻击次数. 因为同学告诉我这是二分图最大匹配,自然就往那个方向去想. 那么怎么建图呢? 每个武器只 ...
随机推荐
- 【Django】用pycharm初学习使用Django
开发框架流程 M V C(99%的开发都是这种流程.) 1.URL控制器 2.Views 视图 3.models 库 1.首先创建一个Django 2.创建成功后里面几个模块的功能 用它来 ...
- DPM(Deformable Parts Model)
DPM(Deformable Parts Model) Reference: Object detection with discriminatively trained partbased mode ...
- svmrank 的误差惩罚因子c选择 经验
C是一个由用户去指定的系数,表示对分错的点加入多少的惩罚,当C很大的时候,分错的点就会更少,但是过拟合的情况可能会比较严重,当C很小的时候,分错的点可能会很多,不过可能由此得到的模型也会不太正确,所以 ...
- MT【141】逆用特征根法
(清华大学THUSSAT) 已知 \(a=\left( \dfrac{-1+\sqrt{5}}{2} \right)^{-10}+\left( \dfrac{-1-\sqrt{5}}{2} \righ ...
- Codeforces 148D 一袋老鼠 Bag of mice | 概率DP 水题
除非特别忙,我接下来会尽可能翻译我做的每道CF题的题面! Codeforces 148D 一袋老鼠 Bag of mice | 概率DP 水题 题面 胡小兔和司公子都认为对方是垃圾. 为了决出谁才是垃 ...
- 【ZJOI 2018】 历史(lct)
历史 题目描述 九条可怜是一个热爱阅读的女孩子. 这个世界有 $n$ 个城市,这 $n$ 个城市被恰好 $n-1$ 条双向道路联通,即任意两个城市都可以互相到达.同时城市 $1$ 坐落在世界的中心,占 ...
- 《Linux内核设计与实现》学习总结 Chap18
一.准备开始 1.一个确定的bug,但大部分bug通常都不是行为可靠且定义明确的. 2.一个藏匿bug的内核版本. 3.相关内核代码的知识和运气. 二.内核中的bug 1.bug的表象: 明白无误的错 ...
- Activity的setResult方法
Activity的setResult方法http://blog.csdn.net/dinglin_87/article/details/8970144 调用setResult()方法必须在finish ...
- P2627 修剪草坪
P2627 修剪草坪 题目描述 在一年前赢得了小镇的最佳草坪比赛后,Farm John变得很懒,再也没有修剪过草坪.现在,新一轮的最佳草坪比赛又开始了,Farm John希望能够再次夺冠. 然而,Fa ...
- Android的taskAffinity对四种launchMode的影响
在Android系统中,一个application的所有Activity默认有一个相同的affinity(亲密关系,相似之处).也就是说同一个应用程序的的所有Activity倾向于属于同一个task. ...