2018 CCPC网络赛1004 - 费马大定理&数学
Posted liubilan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018 CCPC网络赛1004 - 费马大定理&数学相关的知识,希望对你有一定的参考价值。
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6441
Knowledge Point:
1. 费马大定理:当整数n >2时,关于x, y, z的方程 x^n + y^n = z^n 没有正整数解。
2. 0^0次没有意义!!
所以我们知道 n=0, n>2的时候都没有正整数解;
n=1 时显然 b=1, c=a+1 为一组整数解;
n=2 时,a2 = c2-b2 = (c+b)*(c-b);
令x = c+b, y = c-b; 则有 a2 = x*y; b = (x-y)/2, c = (x+y)/2;
因为 b, c 都是正整数,故有 x>y, 且 x, y 奇偶性相同;
当 a为奇数时,x = a2 , y = 1;
当 a为偶数时,a2 和 1一奇一偶,不满足条件,故可令 x = a2/ 2, y = 2;
另外注意数据输入量过大,用 scanf 避免超时;
1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 5 int main() 6 { 7 int T, n, a; 8 scanf("%d", &T); 9 10 while(T--) { 11 scanf("%d %d", &n, &a); 12 13 if(!n || n>2) printf("-1 -1 "); 14 else { 15 if(n == 1) printf("%d %d ", 1, a+1); 16 else { 17 int t = a*a; 18 if(a&1) printf("%d %d ", (t-1)/2, (t+1)/2); 19 else printf("%d %d ", t/4-1, t/4+1); 20 } 21 } 22 } 23 return 0; 24 }
以上是关于2018 CCPC网络赛1004 - 费马大定理&数学的主要内容,如果未能解决你的问题,请参考以下文章
HDU6440 Dream 2018CCPC网络赛-费马小定理
HDU6440 Dream(费马小定理+构造) -2018CCPC网络赛1003
hdu6440 Dream 2018CCPC网络赛C 费马小定理+构造