luogu1445 [violet]樱花 阶乘分解】的更多相关文章

题目大意 求方程$$\frac{1}{x}+\frac{1}{y}=\frac{1}{N!}$$的正整数解的组数. 思路 咱们把式子整理得$$xy-(x+y)N!=0$$.$xy$和$x+y$?貌似可以因式分解?!于是$$N!^2 - (x + y)N! + xy = N!^2$$,即$$(x-N!)(y-N!)=N!^2$$.令$A=x-N!,B=y-N!$,则原式变为$$A*B=(N!)^2$$.因此,解的个数便是$N!^2$的因子的个数.根据唯一分解定理,任意的正整数都可分解为$\prod…
Luogu1445 [Violet]樱花 一句话题意:(本来就是一句话的) 求方程 $\frac{1}{X} + \frac{1}{Y} = \frac{1}{N!}$ 的正整数解的组数,其中$N \leq 10^6$ 题解: 差不多是第一篇公开的题解,因为以前的太烂了,不敢发...... 我们观察到提交记录发现似乎时间有从200ms+到8ms-的,然而标准题解中给出的代码就是跑的比较慢的...... 所以有没有什么快一点的呢? 假设此时你已经用朴素算法A过此题 于是我们分析算法: 楼下题解的复…
题面 题解 $$ \frac 1x + \frac 1y = \frac 1{n!} \\ \frac{x+y}{xy}=\frac 1{n!} \\ xy=n!(x+y) \\ xy-n!(x+y)=0 \\ (x-n!)(y-n!)=(n!)^2 \\ $$ 因为确定$(x-n!),(y-n!)$就能确定$x,y$,所以答案就是$d((n!)^2)$ 代码 #include<cstdio> #include<cstring> #include<cctype> #in…
P1445 [Violet]樱花 显然$x,y>n$ 那么我们可以设$a=n!,y=a+t(t>0)$ 再对原式通分一下$a(a+t)+ax=x(a+t)$ $a^{2}+at+ax=ax+tx$ $x=a^{2}/t+a$ $x=(n!)^{2}/t+n!$ 再根据唯一分解定理 $(n!)^{2}=q_{1}^{p_{1}}*q_{2}^{p_{2}}*q_{3}^{p_{3}}*......*q_{m}^{p_{m}}$ 将$(n!)^{2}$分解质因数一下 最后乘法原理套上去 end.…
洛谷P1445 [Violet] 樱花 题目背景 我很愤怒 题目描述 求方程 1/X+1/Y=1/(N!) 的正整数解的组数,其中N≤10^6. 解的组数,应模1e9+7. 输入输出格式 输入格式: 输入一个整数N 输出格式: 输出答案 输入输出样例 输入样例#1: 1439 输出样例#1: 102426508 Solution 极其恶心的一道题... 看到这种题肯定是需要化简式子的,因为出题人不会好到给你一个好做的式子 \[\frac{1}{x}+\frac{1}{y}=\frac{1}{n!…
题目背景 我很愤怒 题目描述 求方程 $\frac{1}{x}+\frac{1}{y}=\frac{1}{N!}$ 的正整数解的组数,其中$N≤10^6$. 解的组数,应模$1e9+7$. 输入输出格式 输入格式: 输入一个整数N 输出格式: 输出答案 输入输出样例 输入样例#1: 复制 1439 输出样例#1: 复制 102426508 题解 看到原题面的我也很愤怒. 显然是道数论题,所以我们要去分析它的性质. $\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}$ $\…
链接P1445 [Violet]樱花 求方程 \(\frac {1}{X}+\frac {1}{Y}=\frac {1}{N!}\) 的正整数解的组数,其中\(N≤10^6\),模\(10^9+7\). 化简单一下\[x*y-n!*(x+y)=0\] 因式分解一下\[(x-n!)*(y-n!)=(n!)^2\] 设\(a=x-n!,b=y-n!\),那么\(a*b=(n!)^2\) 也就是\(a,b\)对应了唯一一组\(x,y\),所以问题转化成了:求方程 \(a*b=(n!)^2\) 的正整数…
给定两个数m,n,其中m是一个素数. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m. 输入 第一行是一个整数s(0<s<=100),表示测试数据的组数 随后的s行, 每行有两个整数n,m. 输出 输出m的个数. 样例输入 100 5 16 2 样例输出 /*给定两个数m,n 求m!分解质因数后因子n的个数. 这道题涉及到了大数问题,如果相乘直接求的话会超出数据类型的范围. 下面给出一种效率比较高的算法,我们一步一步来. m!=1*2*3*……*(m-2)*(m-…
/* 要求出[1,R]之间的质数会超时,但是要判断[L,R]之间的数是否是素数却不用筛到R 因为要一个合数n的最大质因子不会超过sqrt(n) 所以只要将[2,sqrt(R)]之间的素数筛出来,再用这些素数去筛[L,R]之间的合数即可 */ #include<iostream> #include<cstring> #include<cstdio> #include<cmath> using namespace std; #define ll long lon…
传送门 看到题目就要开始愉快地推式子 原式 $\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}$ $\rightarrow \frac{x+y}{xy}=\frac{1}{n!} \rightarrow (x+y)n!=xy \rightarrow xy-(x+y)n!=0$ 两边同时加上 $(n!)^2$ 得 $xy-(x+y)n!+(n!)^2=(n!)^2\rightarrow (x-n!)(y-n!)=(n!)^2$ 设$a=(x-n!),b=(y-n!)$,则原…
Luogu P1445[Violet]樱花/P4167 [Violet]樱花 真·双倍经验 化简原式: $$\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}$$ $$\frac{xy}{x+y}=n!$$ $$xy=n!(x+y)$$ $$-n!(x+y)+xy=0$$ $$(n!x+n!y)-xy=0$$ $$(n!)^2+(n!x+n!y)-xy=(n!)^2$$ $$(x-n!)(y-n!)=(n!)^2$$ 所以$(x-n!)$就是$(n!)^2$的一个因子. 又…
http://www.lightoj.com/volume_showproblem.php?problem=1340 题意:问n!在b进制下至少有t个后缀零,求最大的b. 思路:很容易想到一个数通过分解素因子可以得到最大的指数.那么问题关键在于求得n!的素因子的指数,找到指数大于t的所有素因子,再将那些指数除去t,剩下的数就是最大的b了.分解阶乘时,对n不断除素数p,直到n为0时,此时商的和即该素因子的指数. /** @Date : 2016-11-30-19.35 * @Author : Lw…
题意:求阶乘尾部有Q(1 ≤ Q ≤ 108)个0的最小N 分析:如果给出N,然后求N!尾部0的个数的话,直接对N除5分解即可(因为尾部0肯定是由5*2构成,那么而在阶乘种,2的因子个数要比5少,所以求阶乘中因子5的个数就是尾部0的个数).本题是给出尾部0的个数,逆推N.如果从小到大枚举的话,肯定会超时. 一般这种问题,可以用二分的方法搜答案.得到答案之后再向下逼近. #include<iostream> #include<algorithm> #include<stdio.…
给定整数 N ,试把阶乘 N! 分解质因数,按照算术基本定理的形式输出分解结果中的 pipi 和 cici 即可. 输入格式 一个整数N. 输出格式 N! 分解质因数后的结果,共若干行,每行一对pi,cipi,ci,表示含有pciipici项.按照pipi从小到大的顺序输出. 数据范围 1≤N≤1061≤N≤106 输入样例: 5 输出样例: 2 3 3 1 5 1 样例解释 5!=120=23∗3∗5 思路: 既然是找质因数的个数,我们就先把到n的所有素数筛出来: 每个素数在N!里的个数就是(…
给定整数 N ,试把阶乘 N! 分解质因数,按照算术基本定理的形式输出分解结果中的 pipi 和 cici 即可. 输入格式 一个整数N. 输出格式 N! 分解质因数后的结果,共若干行,每行一对pi,cipi,ci,表示含有pciipici项.按照pipi从小到大的顺序输出. 数据范围 1≤N≤1061≤N≤106 输入样例: 5 输出样例: 2 3 3 1 5 1 筛法应用:https://www.luogu.org/blog/top-oier/xian-xing-shai-fa-qiu-su…
题目链接:传送门 题解: $(1e6)!$ 这种数字,表示都表示不出来,想直接 $O(\sqrt{N})$ 分解质因数这种事情就不要想了. 考虑 $N!$ 的特殊性,这个数字的所有可能包含的质因子,就是 $1 \sim N$ 这些数所包含的质因子.因此,只需要考虑 $1 \sim N$ 这每个数字的质因子即可. 那么,不妨筛出属于 $1 \sim N$ 范围内的所有质数,对于每一个质数 $p$,$1 \sim N$ 中显然有 $\lfloor N/p \rfloor$ 个能够被 $p$ 整除的数…
/* 将C(n,k)质因数分解,然后约束个数按公式计算 */ #include<iostream> #include<cstring> #include<cstdio> #include<cmath> using namespace std; #define ll long long ],prime[],m,c[],p[]; void init(int n){ memset(prime,,sizeof prime); memset(v,,sizeof v);…
题目链接 分解\(n!\)的质因数,输出相应的\(p_i\)和\(c_i\). 其中\(1\leq n\leq 10^6\).   考虑每一个质因子 \(p\) 在 \(n!\) 中出现的次数.显然,\(1\)~\(n\) 中包含 \(p\) 的个数为 \(\lfloor\frac{n}{p}\rfloor\),包含 \(p^2\) 的个数为 \(\lfloor\frac{n}{p^2}\rfloor\)...最后累加起来就行了.复杂度\(O(nlogn)\). 代码如下: #include <…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2721 要推式子! 发现x和y一定都比 n! 大.不妨设 x = n!+k: 则1/x + 1/y = 1/ n! <=> ( n! + k + y ) / ( n! + k ) * y = 1 / n! <=> n! * y+ k * y= (n!)^2 + n! * k + n! * y <=> y = (n!)^2 / k + n! 所以( x, y ) 的个…
题目链接 洛谷 狗粮版 前置技能 初中基础的因式分解 线性筛 \(O(nlog)\)的分解质因数 唯一分解定理 题解 首先来分解一下式子 \[\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}\] 通分可化为: \[\frac{x+y}{xy}=\frac{1}{n!}\] 两边同时乘\(xy*(n!)\) \[(x+y)n!=xy\] 移项得: \[xy-(x+y)n!=0\] 两边同时加上\((n!)^2\) \[xy-(x+y)n!+(n!)^2=(n!)^2\] 通…
就是化柿子 我们求 \[\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}\] 的正整数解的个数 喜闻乐见的化柿子了 \[\frac{x+y}{xy}=\frac{1}{n!}\] \[xy=xn!+yn!\] \[xy-xn!=yn!\] \[x=\frac{yn!}{y-n!}\] 所以这里的\(y\)显然是要大于\(n!\)的 设\(y=n!+c\) 那么 \[x=\frac{n!(n!+c)}{n!+c-n!}=\frac{n!(n!+c)}{c}=\frac{(n…
洛谷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/n!​ 等式两边同乘x*n!*(n!+k)得 n!(n!+k)+xn!=x(n!+k) 移项得 n!(n!+k)=x(n!+k)−xn!=xk x=n!(n!+k)​/k=(n!)2​/k+n! 因为x为正整数 所以(n!)2​/k+n!为正整数0. 因为n!为正整数 所以只要(n!)2​/k为正…
做了题还是忍不住要写一发题解,感觉楼下的不易懂啊. 本题解使用latex纯手写精心打造. 题意:求\(\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}\)的正整数解总数. 首先,不会线筛素数的先去做下LuoguP3383. 开始推导. \[\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}\] 那么\(\frac{1}{x}\)和\(\frac{1}{y}\)肯定是小于\(\frac{1}{n!}\)的.所以\(x\)和\(y\)肯定都是大于\(n!…
1138 - Trailing Zeroes (III) PDF (English) problem=1138" style="color:rgb(79,107,114)">Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB You task is to find minimal natural number N, so that N! contains exactly Q zeroes on the…
题面 又懒得弄题面,开个传送门吧 分析 人生第一次切数学题,我们先把方程写出来 $$\frac {1}{x}+\frac {1}{y}=\frac {1}{n!}$$ 现在我们知道的条件是x,y都是正整数(废话  所以我们考虑单独通过式子的变换将x,y表示出来,表示出来的式子算出来也一定是个整数 $$\frac {1}{x}+\frac {1}{y}=\frac {1}{n!}$$ $$\frac {1}{x}=\frac {1}{n!}-\frac{1}{y}$$ $$\frac {1}{x}…
BZOJ原题链接 洛谷原题链接 其实推导很简单,只不过我太菜了想不到...又双叒叕去看题解 简单写下推导过程. 原方程:\[\dfrac{1}{x} + \dfrac{1}{y} = \dfrac{1}{n!}\] 通分:\[\dfrac{x + y}{xy} = \dfrac{1}{n!}\] 十字相乘:\[(x + y) \times n! = xy\] 把\((x + y) \times n!\)移到右项:\[xy - (x + y) \times n! = 0\] 两边同时加上\((n!…
题面 题解 首先化一下式子 $$ \frac 1x+\frac 1y=\frac 1{n!} \Rightarrow \frac {x+y}{xy}=\frac 1{n!} \Rightarrow (x+y)n!=xy \\ \Rightarrow(n!-x)+(n!-y)=(n!)^2 $$ 看到最后一个式子,由于$n!$是唯一确定的,所以只要确定了$x$,$y$也是确定的,而且是唯一确定的一组$(x,y)$. 根据唯一分解定理,$n!=p_1^{k_1}p_2^{k_2}...p_m^{k_…
#include<cstdio> #include<algorithm> #include<cstring> #include<vector> using namespace std; #define fi first #define se second #define mp make_pair #define pb push_back typedef long long ll; typedef unsigned long long ull; typedef…
n<=10^6 m<=10^6 p=2^32 用unsigned int 可以避免取模 我写的SB超时 阶乘分解代码 #include <cstdio> #include <cstdlib> #include <cmath> #include <cstring> #include <ctime> #include <algorithm> #include <iostream> #include <sstr…
点击打开链接 阶乘因式分解(二) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 给定两个数n,m,其中m是一个素数. 将n(0<=n<=2^31)的阶乘分解质因数,求其中有多少个m. 注:^为求幂符号.   输入 第一行是一个整数s(0<s<=100),表示测试数据的组数 随后的s行, 每行有两个整数n,m.  输出 输出m的个数 样例输入 3 100 5 16 2 1000000000 13 样例输出 24 15 83333329 比较水的题,不解…