传送门:QAQ
题意:x^n+y^n=z^n,现给x和n,求y和z
思路:首先费马大定理, 然后就是奇偶勾股数了(就是这个怕自己忘了)
当a为奇数时:
a=2*z+1;
b=z*z + (z + 1)*(z + 1) - 1;
c=z*z + (z + 1)*(z + 1);
当a为偶数时:
a=2*z;
b=z*z-1;
c=z*z+1;
附上代码:
#include<stdio.h>
int main(void)
{
int t;
scanf("%d", &t);
while (t--) {
long long n, m;
scanf("%lld%lld", &m, &n);
if (m == 0||m>2) {
printf("-1 -1\n");
}
else if (m == 1) {
printf("%lld %lld\n", (long long)1, n + 1);
}
else {
if (n % 2 == 1) {
long long z = (n - 1) / 2;
printf("%lld %lld\n", z*z + (z + 1)*(z + 1) - 1, z*z + (z + 1)*(z + 1));
}
else {
printf("%lld %lld\n", n*n / 4 - 1,n*n / 4 + 1);
}
}
}
return 0;
}