[CF743C]Vladik and fractions
题目
解说
找来一些思维题练手,碰上了这一道,个人觉得挺有意思,写博客以记之。
首先有\(x,y,z\)三个变量对于我们来说是非常不利的,因为很难进一步确定变量之间的关系。那么我们就要想办法先干掉一个变量。既然\(x,y,z\)都没有什么特殊要求,我们不妨构造出最简单的情况:
不妨令
则有
我们的式子里只有两个变量了,很容易进一步确定它们之间的关系:
再一次,既然\(x,y,z\)没什么特殊要求,不妨令\(x=n+1\)使我们的工作更加简单。将\(x=n+1\)代入上式便可以得到:
至此,我们就已经确定了这个方程的一组特解:
提交之后欢迎直接开门红!
我们来思考一下哪里出问题了……题目中无解的情况似乎没有用到。那么在什么时候\(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\),则
即
因为右边的分子必须可以约分为\(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\)时原方程无解。
代码
#include<bits/stdc++.h>
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;
}