码迷,mamicode.com
首页 > 其他好文 > 详细

【2018 CCPC网络赛】1004 - 费马大定理&数学

时间:2018-08-26 18:31:30      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:条件   str   can   class   意义   iostream   \n   color   正整数   

题目地址: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\n");
14         else {
15             if(n == 1) printf("%d %d\n", 1, a+1);
16             else {
17                 int t = a*a;
18                 if(a&1) printf("%d %d\n", (t-1)/2, (t+1)/2);
19                 else printf("%d %d\n", t/4-1, t/4+1);
20             }
21         }
22     }
23     return 0;
24 }

 

【2018 CCPC网络赛】1004 - 费马大定理&数学

标签:条件   str   can   class   意义   iostream   \n   color   正整数   

原文地址:https://www.cnblogs.com/liubilan/p/9537799.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!