题目链接
分析:
费马大定理:仅仅在n为1或 2时题目中公式才成立,n为1时,随便整一组b和c即可。
勾股数推导见代码里的注释
代码
#include <stdio.h>
#include <math.h>
using namespace std;
typedef long long ll;
// 当a为大于1的奇数2n+1时,b=2n^2+2n, c=2n^2+2n+1
// 当a为大于4的偶数2n时, b=n^2-1, c=n^2+1
int main()
{
ll a1,a2,a3;
int t;
scanf("%d",&t);
while(t--)
{
ll a,n;
scanf("%lld%lld",&n,&a);
if(n>2||n==0)
{
printf("-1 -1\n");
}
else
{
if(n==1)
{
printf("%lld %lld\n",1,a+1);
}
else
{
int zan;
n = a/2;
ll b,c;
if(a%2)
{
b=2*n*n+2*n;
c= 2*n*n+2*n+1;
}
else
{
b=n*n-1;
c=n*n+1;
}
printf("%lld %lld\n",b,c);
}
}
}
return 0;
}