联立方程组
看有没有整数解
我一开始觉得是个高精度
很大很大的值
我就拿字符数组做了
然后同余定理用的不对啊
我为啥不先用longlong试试呢
真是的我脑子里扫了扫觉得过不了
第一遍是用longlong写的
我吐了
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
long long p;
scanf("%d",&t);
while(t--)
{
scanf("%lld",&p);
long long ans=12*p-3;
long long res=sqrt(ans);
if(res*res==ans)
{
if((res-3)%6==0)
printf("YES\n");
else
printf("NO\n");
}
else if((res+1)*(res+1)==ans)
{
if((res-2)%6==0)
printf("YES\n");
else
printf("NO\n");
}
else
printf("NO\n");
}
return 0;
}
12*p-3是判别式
可以自己在纸上算一下