Cassels方程是一个在数论界产生了巨大影响的不定方程:x2+y2+z2=3xyz。该方程有无穷多自然数解。
本题并不是要你求解这个方程,只是判断给定的一组 (x,y,z) 是不是这个方程的解。
输入格式:
输入在第一行给出一个不超过 10 的正整数 N,随后 N 行,每行给出 3 个正整数 0<x≤y≤z≤1000。
输出格式:
对于每一组输入,如果是一组解,就在一行中输出 Yes
,否则输出 No
。
输入样例:
2
1 1 1
5 6 7
输出样例:
Yes
No
源代码:
#include<stdio.h>
void main()
{ int x[100],y[100],z[100],n,i,m,p;
scanf("%d\n",&n);
for(i=0;i<n;i++)
scanf("%d%d%d\n",&x[i],&y[i],&z[i]);
for(i=0;i<n;i++)
{ m=x[i]*x[i]+y[i]*y[i]+z[i]*z[i];
p=3*x[i]*y[i]*z[i];
if(p==m)
printf("Yes\n");
else
printf("No\n");
}
}