Description
Vladik and Chloe decided to determine who of them is better at math. Vladik claimed that for any positive integer (n) he can represent fraction (frac {2}{n}) as a sum of three distinct positive fractions in form (frac {1}{m}). Help Vladik with that, i.e for a given (n) find three distinct positive integers (x) , (y) and (z) such that (frac {2}{n} = frac {1}{x} + frac{1}{y} + frac {1}{z}). Because Chloe can't check Vladik's answer if the numbers are large, he asks you to print numbers not exceeding (10^{9}) . If there is no such answer, print -1.
Input
The single line contains single integer (n) ( (1<=n<=10^{4}) ).
Output
If the answer exists, print (3) distinct numbers (x) , (y) and (z) ( (1<=x,y,z<=10^{9}) , (x≠y) , (x≠z) , (y≠z) ). Otherwise print -1. If there are multiple answers, print any of them.
Sample Input1
3
Sample Output1
2 7 42
Sample Input2
7
Sample Output2
7 8 56
Hint
对于(100)%的数据满足(n leq 10^4),要求答案中(x,y,z leq 2* 10^{9})
题解
先贴一下洛谷的题目翻译
题目描述 请找出一组合法的解使得(frac {1}{x} + frac{1}{y} + frac {1}{z} = frac {2}{n})成立,其中(x,y,z)为正整数并且互不相同
输入 一个整数(n)
输出 一组合法的解(x, y ,z)用空格隔开,若不存在合法的解,输出(-1)
数据范围 对于(100)%的数据满足(n leq 10^4),要求答案中(x,y,z leq 2* 10^{9})
看到(frac {2}{n})很容易猜想(x,y)或者(z)中有一个等于(n),那么我们先设(x=n),则有(frac{1}{y} + frac {1}{z} = frac {1}{n}),由样例二我们猜想,(y=n+1),(z=n imes(n+1)),正好有公式(frac{1}{n+1} + frac {1}{n imes(n+1)} = frac {1}{n}),所以我们可以得出一组可行解(x=n),(y=n+1),(z=n imes(n+1))
很显然,这题有多种解,将我们的解代入样例(1),可以发现这是可行的
但是当(n=1)时,无解
下面给出两种证法
-
当(n=1)时,(n+1=2),(n imes(n+1)=2),与题目中的(x≠y) , (x≠z) , (y≠z)矛盾
-
因为(x≠y) , (x≠z) , (y≠z),且(x,y,z)都是整数,所以(x,y,z)的最小值分别为(1,2,3),此时(frac {1}{x} + frac{1}{y} + frac {1}{z} = 1 = frac {2}{2}),很显然(n≥2)时才有解
(My~Code)
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
if(n==1) puts("-1");
else printf("%d %d %d
",n,n+1,n*n+n);
return 0;
}