/*
摘:
解题思路:如果要按正常方法从小到大遍历,由于数据量大一定会超时。
其实上述式子转化后可以分解因子:n = ( y - x )*( y + x ) ;
令 y - x = i,所以有 x + y = n / i ,即 ( n / i - i ) / 2 = x.
注意:x 要大于 0 ,当 n 是完全平方数时要注意。
2012-04-21
*/
摘:
解题思路:如果要按正常方法从小到大遍历,由于数据量大一定会超时。
其实上述式子转化后可以分解因子:n = ( y - x )*( y + x ) ;
令 y - x = i,所以有 x + y = n / i ,即 ( n / i - i ) / 2 = x.
注意:x 要大于 0 ,当 n 是完全平方数时要注意。
2012-04-21
*/
#include"stdio.h"
#include"math.h"
int main()
{
int i;
int t;
int n;
int x;
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
x=-1;
t=(int)sqrt(n);
for(i=t;i>0;i--)
{
if(n%i==0&&(n/i-i)%2==0&&(n/i-i)/2>0)
{
x=(n/i-i)/2;
break;
}
}
printf("%d\n",x);
}
return 0;
}