Pythagorean Triples
time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

Katya studies in a fifth grade. Recently her class studied right triangles and the Pythagorean theorem. It appeared, that there are triples of positive integers such that you can construct a right triangle with segments of lengths corresponding to triple. Such triples are calledPythagorean triples.

For example, triples (3, 4, 5), (5, 12, 13) and (6, 8, 10) are Pythagorean triples.

Here Katya wondered if she can specify the length of some side of right triangle and find any Pythagorean triple corresponding to such length? Note that the side which length is specified can be a cathetus as well as hypotenuse.

Katya had no problems with completing this task. Will you do the same?

Input

The only line of the input contains single integer n (1 ≤ n ≤ 109) — the length of some side of a right triangle.

Output

Print two integers m and k (1 ≤ m, k ≤ 1018), such that nm and k form a Pythagorean triple, in the only line.

In case if there is no any Pythagorean triple containing integer n, print  - 1 in the only line. If there are many answers, print any of them.

Examples
input
3
output
4 5
input
6
output
8 10
input
1
output
-1
input
17
output
144 145
input
67
output
2244 2245
Note

Illustration for the first sample.

分析:除1,2外其他都可以,然后小心推导即可;
代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <climits>
#include <cstring>
#include <string>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <vector>
#include <list>
#define rep(i,m,n) for(i=m;i<=n;i++)
#define rsp(it,s) for(set<int>::iterator it=s.begin();it!=s.end();it++)
#define mod 1000000007
#define inf 0x3f3f3f3f
#define vi vector<int>
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define ll long long
#define pi acos(-1.0)
#define pii pair<int,int>
#define Lson L, mid, rt<<1
#define Rson mid+1, R, rt<<1|1
const int maxn=1e5+;
const int dis[][]={{,},{-,},{,-},{,}};
using namespace std;
ll gcd(ll p,ll q){return q==?p:gcd(q,p%q);}
ll qpow(ll p,ll q){ll f=;while(q){if(q&)f=f*p;p=p*p;q>>=;}return f;}
int n,m,k,t;
int main()
{
int i,j;
ll p;
scanf("%lld",&p);
p=p*p;
if(p&)
{
ll ans1=(p-)/,ans2=ans1+;
if(ans1)printf("%lld %lld\n",ans1,ans2);
else puts("-1");
}
else
{
p/=;
if(p&)puts("-1");
else
{
ll ans1=(p-)/,ans2=ans1+;
if(ans1)printf("%lld %lld\n",ans1,ans2);
else puts("-1");
}
}
//system("Pause");
return ;
}

最新文章

  1. PHP数组函数--array_filter
  2. APP漏洞扫描器之本地拒绝服务检测详解
  3. C——malloc &amp; free(转载自bccn C语言论坛)
  4. 【转】adns解析库——域名解析实例(C++、linux)
  5. js实现对数据库的增删查改
  6. 如何调试delphi的Access violation at address错误
  7. (转)用eclipse创建一个j2ee的web工程后,左面projects窗口中的项目如何没有显示webRoot文件夹,除了src的文件夹,其他都不显示
  8. WDCP下安装PHPWind
  9. UglifyJS-- 对你的js做了什么
  10. Gson解析json字符串、json数组转换成对象
  11. [MV] - You Give REST a Bad Name
  12. 程序员50题(JS版本)(二)
  13. 【Android】自动测试工具 Monkey
  14. Tip: JSP开发模式
  15. 移动端H5拍照代码实现及外网部署
  16. vue修改端口号
  17. Android:weight,margin,padding详解实例
  18. 2017-2018-2 20155309南皓芯《网络对抗技术》Exp2 后门原理与实践
  19. Spring Security认证配置(三)
  20. [老法新用]使用PADDING-TOP:(PERCENTAGE)实现响应式背景图片

热门文章

  1. Ansible2:主机清单【转】
  2. 【转载】CentOS 6.4下PXE+Kickstart无人值守安装操作系统
  3. Linux下配置Nginx按天切割日志
  4. phpStorm设置显示代码行号
  5. Python 协程/异步IO/Select\Poll\Epoll异步IO与事件驱动
  6. 使用固件库操作STM32F4时的必要配置(转)
  7. 安装完php 后添加到环境变量
  8. OpenGL---------BMP文件格式
  9. mysql HA-keepalived
  10. Python里如何实现C中switch...case的功能