由费马大定理,
a
n
+
b
n
=
c
n
当
n
>
2
时
无
正
整
数
解
a^n+b^n=c^n当n>2时无正整数解
an+bn=cn当n>2时无正整数解
当
n
=
1
时
,
随
便
取
b
的
值
,
c
=
a
+
b
就
行
了
当n=1时,随便取b的值,c=a+b就行了
当n=1时,随便取b的值,c=a+b就行了
当
n
=
2
时
,
a
,
b
,
c
为
勾
股
数
当n=2时,a,b,c为勾股数
当n=2时,a,b,c为勾股数
当
a
为
大
于
1
的
奇
数
2
n
+
1
时
,
b
=
2
n
²
+
2
n
,
c
=
2
n
²
+
2
n
+
1
。
当a为大于1的奇数2n+1时,b=2n²+2n, c=2n²+2n+1。
当a为大于1的奇数2n+1时,b=2n²+2n,c=2n²+2n+1。
当
a
为
大
于
4
的
偶
数
2
n
时
,
b
=
n
²
−
1
,
c
=
n
²
+
1
。
当a为大于4的偶数2n时,b=n²-1, c=n²+1。
当a为大于4的偶数2n时,b=n²−1,c=n²+1。
题
目
里
面
给
出
了
a
≥
3
。
题目里面给出了a\ge3。
题目里面给出了a≥3。
考
虑
a
=
4
的
情
况
,
发
现
b
=
3
,
c
=
5
,
还
是
符
合
题
意
,
无
需
特
判
。
考虑a=4的情况,发现b=3,c=5,还是符合题意,无需特判。
考虑a=4的情况,发现b=3,c=5,还是符合题意,无需特判。
#include <cstdio>
typedef long long ll;
int main() {
int T;
ll n,a,b,c;
scanf("%d", &T);
while(T--){
scanf("%lld%lld", &n, &a);
if (n==1) {
printf("%lld %lld\n",1,1+a);
}
else if (n==2) {
if (a%2==1){
ll tmp = (a-1)/2;
b = 2*tmp*tmp+2*tmp;
c = b+1;
printf("%lld %lld\n",b,c);
}
else {
ll tmp = a/2;
b = tmp*tmp - 1;
c = b + 2;
printf("%lld %lld\n",b,c);
}
}
else printf("-1 -1\n");
}
return 0;
}