http://acm.hdu.edu.cn/showproblem.php?pid=6441
思路:
费马大定理:平方整数解a^2+b^2=c^2的a值奇偶数列法则可知。
当a为奇数时,b=c-1
当a为偶数时,b=c-2
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn=1e5+10;
const int inf=0x7fffffff;
ll a[maxn];
priority_queue<ll, vector<ll>, greater<ll> > q;
map<ll,int>mp;
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n;
int a,b,c;
scanf("%d %d",&n,&a);
if(n>2||n==0)
{
printf("-1 -1\n");
}
else if(n==1)
{
printf("%d %d\n",1,a+1);
}
else
{
if(a%2)
{
a=(a-1)/2;
b=2*a*a+2*a;
c=2*a*a+2*a+1;
printf("%d %d\n",b,c);
}
else
{
a=a/2;
b=a*a-1;
c=a*a+1;
printf("%d %d\n",b,c);
}
}
}
return 0;
}