sicily 1531. Pythagorean Proposition II

#include<iostream>
using namespace std;
int main()
{
int n,l;
cin
>>n;
while(n--)
{
cin
>>l;
int s=0;
for(long long a=1;a<=l/3;++a) //这里要用长整形,因为下面的(l-a)*(l-a)会超int范围
{
double c=((l-a)*(l-a)+a*a)/(2.0*(l-a)); //由a+b+c=l ,a^2+b^2=c^2 联立可得
if((int)c==c&&l-a-c>=a) //保证a<=b<c
s++;
}
cout
<<s<<endl;
}
return 0;
}

posted on 2011-07-05 02:32  sysu_mjc  阅读(220)  评论(0编辑  收藏  举报

导航