[CF743C] Vladik and fractions


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)时,无解

下面给出两种证法

  1. (n=1)时,(n+1=2)(n imes(n+1)=2),与题目中的(x≠y) , (x≠z) , (y≠z)矛盾

  2. 因为(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;
}

原文地址:https://www.cnblogs.com/hihocoder/p/12568576.html