-
Find Integer
- HDU - 6441
- 它断言当整数n >2时,关于x, y, z的方程 x^n + y^n = z^n 没有正整数解。
- 所以 对大于二 与0进行特判处理1,2.
- 当n==2时 利用平方差公式 a^2=c^2-b^2=(c+b)*(c-b);
- 只需查询a^2的因子判断是否成绩因子相加为偶数
- 如果是偶数那么b,c可以求出。
- c=(小因子+大因子) / 2. b=c-小因子。
-
#include<stdio.h> #include<cmath> using namespace std; long long t,n,a,b,c; int main() { scanf("%lld",&t); while(t--) { scanf("%lld%lld",&n,&a); if(n>2||n==0) printf("-1 -1\n"); else { if(n==1) { printf("1 %lld\n",a+1); } else { long long x=a*a; int flog=0; for(int i=1; i<=a; i++) { if(x%i==0) { long long tx=x/i; if((tx+i)%2==0) { b=((tx+i)/2-i); c=((tx+i)/2); printf("%lld %lld\n",b,c); flog=1; break; } } } if(flog==0) printf("-1 -1\n"); } } } return 0; }
Find Integer-费马大定理
最新推荐文章于 2020-11-23 21:09:28 发布