题目:
题意:
a^n+b^n=c^n,给出a,n,求出一组b,c;
分析:
根据费马大定理,n>2的所有情况可以排除,n=0无结果,n=1随便写,剩下的就是n=2,利用勾股数的性质就可以写出;

代码:
#include<stdio.h> using namespace std; int main() { int t,a,n,b,c; scanf("%d",&t); while(t--) { scanf("%d %d",&n,&a); if(n>2||n==0) { printf("-1 -1\n"); continue; } else if(n==1) printf("1 %d\n",1+a); else { if(a%2==1) { a=(a-1)/2; b=2*a*a+2*a; c=b+1; } else { if(a==4) { b=3; c=5; } else { a=a/2; b=a*a-1; c=b+2; } } printf("%d %d\n",b,c); } } return 0; }
博客围绕求解方程a^n+b^n=c^n中b和c的值展开。根据费马大定理排除n>2的情况,n=0无结果,n=1可随意取值,重点针对n=2,利用勾股数性质求解。
3万+

被折叠的 条评论
为什么被折叠?



