题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6441

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)

Problem Description
people in USSS love math very much, and there is a famous math problem .
give you two integers n,a,you are required to find 2 integers b,c such that $a^n + b^n = c^n$.

Input
one line contains one integer T;(1≤T≤1000000)
next T lines contains two integers n,a;(0≤n≤1000,000,000,3≤a≤40000)

Output
print two integers b,c if b,c exits;(1≤b,c≤1000,000,000);
else print two integers -1 -1 instead.

Sample Input
1
2 3

Sample Output
4 5

题意:

给出 $n$ 和 $a$ (0≤n≤1e9,3≤a≤4e4),要求你给出 $b$ 和 $c$ 满足 $a^n + b^n = c^n$。

题解:

根据费马大定理,$n > 2$ 时 $a^n + b^n = c^n$ 没有整数解,所以只需要计算 $n = 0,1,2$ 这三种情况:

1、$n = 0$,任何的正整数 $b,c$ 都无法使等式成立。

2、$n = 1$,任意取。

3、$n = 2$,$a^2 = \left( {c + b} \right)\left( {c - b} \right)$,分两种情况讨论:

      若 $a$ 为奇数,则 $a^2$ 也为奇数,则取 $b = \frac{{a^2 - 1}}{2},c = \frac{{a^2 + 1}}{2}$;

      若 $a$ 为偶数,则 $a^2$ 必然是 $4$ 的倍数,则取 $b = \frac{{a^2 - 4}}{4},c = \frac{{a^2 + 4}}{4}$。

      

AC代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll; ll a,n; int main()
{
int T;
cin>>T;
while(T--)
{
scanf("%lld%d",&n,&a); if(n== || n>) printf("-1 -1\n");
if(n==) printf("1 %lld\n",a+);
if(n==)
{
if(a%==) printf("%lld %lld\n",(a*a-)/,(a*a+)/);
else printf("%lld %lld\n",(a*a-)/,(a*a+)/);
}
}
}

最新文章

  1. js中的caller和callee属性
  2. [译]用AngularJS构建大型ASP.NET单页应用(三)
  3. JQuery data方法的使用-遁地龙卷风
  4. (转载)移动WEB前端开发资源整合
  5. linux学习笔记 2013-09-02
  6. UIButton详解
  7. php中curl、fsockopen的应用
  8. js页面加载进度条
  9. Android对于静默安装和卸载
  10. HDU 1681 Frobenius(完全背包+标记装满)
  11. JEESZ分布式框架简介
  12. 读书笔记--Android Gradle权威指南(下)
  13. 分布式系列六: WebService简介
  14. JDK,JRE,JVM,JMM关系与区别
  15. ThinkPHP3.2.3中M()和D()的区别详解
  16. &lt;Android 基础(三十一)&gt; ObjectAnimator
  17. Sword redis补充
  18. Linux虚拟机克隆后网卡UUID问题
  19. Java对象的强、软、弱和虚引用+ReferenceQueue
  20. 学员管理系统(SQLAlchemy 实现)

热门文章

  1. 图解Python深拷贝和浅拷贝
  2. cocos2d-x 3.0 在lua中调用自定义类
  3. VS调试DLL项目代码
  4. nginx优化 实现10万并发访问量
  5. 适配器模式(PHP实现)
  6. nginx介绍和安装
  7. IOS设计模式第四篇之装饰设计模式的类别设计模式
  8. R语言(入门小练习篇)
  9. Android.mk (1) 函数
  10. ngnix +tomcat7 简单配置