本篇博客主要讲解一个比较牛掰的定理——费马大定理,为什么这么牛掰呢,因为这个问题困扰了困扰了整个世界三百多年,直到上个世纪90年代终于被牛掰的人安德鲁·怀尔斯给证明出来,你说这个定理牛不牛掰。
那么这个牛掰的定理讲的是啥?
这就是困扰世界三个多世纪的问题,瞅着是不是挺简单的,但是证明那就呵呵了,在下能力有限,就不给大家写证明的过程了,只要求大家知道费马大定理就是了。
题目:Find Integer
题意:给你n和a,让你根据求出正整数b和c。
思想:一看这道题就能想到费马大定理,世界难题,当n>2时,显然无解,只有当n为1或者n为2的时候,才有解。当n为1的时候,显然b为1,c为a+1的时候是一组解。当n为2的时候,就采用积偶数列法则。
代码:
#include<bits/stdc++.h>
using namespace std;
#define LL long long
int main(){
LL n, a, b, c, t;
int T;
scanf("%d", &T);
while(T--){
scanf("%lld %lld", &n, &a);
if(n == 2){
if(a % 2 == 0){
t = a / 2;
b = t*t - 1;
c = t*t + 1;
}
else {
t = a / 2;
c = t*t + (t+1)*(t+1);
b = c - 1;
}
printf("%lld %lld\n", b, c);
}
else if(n == 1){
printf("1 %d\n", a+1);
}
else printf("-1 -1\n");
}
return 0;
}