[CF743C]Vladik and fractions
题目
原题链接
解说
找来一些思维题练手,碰上了这一道,个人觉得挺有意思,写博客以记之。
首先有\(x,y,z\)三个变量对于我们来说是非常不利的,因为很难进一步确定变量之间的关系。那么我们就要想办法先干掉一个变量。既然\(x,y,z\)都没有什么特殊要求,我们不妨构造出最简单的情况:
不妨令
\[z=n \]则有
\[\frac{1}{x}+\frac{1}{y}=\frac{1}{n} \]我们的式子里只有两个变量了,很容易进一步确定它们之间的关系:
\[y=\frac{n \cdot x}{x-n} \]再一次,既然\(x,y,z\)没什么特殊要求,不妨令\(x=n+1\)使我们的工作更加简单。将\(x=n+1\)代入上式便可以得到:
\[y=n^2+n \]至此,我们就已经确定了这个方程的一组特解:
\[\begin{cases} x=n+1 \\ y=n^2+n\\ z=n \end{cases}\]提交之后欢迎直接开门红!
我们来思考一下哪里出问题了……题目中无解的情况似乎没有用到。那么在什么时候\(x,y,z\)会无解呢?这时我们又注意到题目中的一个条件\(x \neq y \neq z\)。简单地解个方程就会发现\(n=1\)时\(n+1=n^2+n\),我们的特解不符合要求,因此我们猜测\(n=1\)时原方程无解。但是我们应当进行严谨的证明。
证明:因为\(x,y,z \in N^{+}\)且\(\frac{1}{x}+\frac{1}{y}+\frac{1}{z}=2\),所以\(x,y,z\)中必然有且只有一者为\(1\)(可以假设若\(x,y,z\)均不为\(1\),则\(\frac{1}{x}+\frac{1}{y}+\frac{1}{z}\)最大只能为\(\frac{3}{2}\);若\(x,y,z\)中有不止一个为\(1\),则\(\frac{1}{x}+\frac{1}{y}+\frac{1}{z}\)肯定大于\(2\))。
所以不妨令\(z=1\),则
\[\frac{1}{x}+\frac{1}{y}=1 \] \[\frac{1}{y}=\frac{x-1}{x} \]因为右边的分子必须可以约分为\(1\),所以\(gcd(x-1,x)=x-1\),但\(\forall x \in N^{+},gcd(x-1,x)=1\),所以\(x\)只能为\(2\),但将\(x=2\)代入\(x\)与\(y\)的关系式可得\(y=2\),不符合\(x \neq y\),所以\(n=1\)时原方程无解。
\[Q.E.D. \]代码
#include
using namespace std;
int main(){
int n;
scanf("%d",&n);
if(n==1) printf("-1\n");
else printf("%d %d %d\n",n,n+1,n*n+n);
return 0;
}