[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 ]

至此,我们就已经确定了这个方程的一组特解:

[egin{cases} x=n+1 \ y=n^2+n\ z=n end{cases}]

提交之后欢迎直接开门红!

我们来思考一下哪里出问题了……题目中无解的情况似乎没有用到。那么在什么时候(x,y,z)会无解呢?这时我们又注意到题目中的一个条件(x eq y eq 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 eq y),所以(n=1)时原方程无解。

[Q.E.D. ]

代码

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	scanf("%d",&n);
	if(n==1) printf("-1
");
	else printf("%d %d %d
",n,n+1,n*n+n);
	return 0;
}
原文地址:https://www.cnblogs.com/DarthVictor/p/13429502.html