[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;
}