2014-一生之敌 ZCMU

Description Input 第一行输入一个整数T,表示数据组数。     每组数据输入一个整数n。 1  0  保证结果存在  Output 输出

Description

 

Input

 第一行输入一个整数T,表示数据组数。   
 每组数据输入一个整数n。

 1 <= T <= 100000 
 0 <= n <= 10^19
 保证结果存在 

Output

 输出一个整数。

Sample Input

3

2

6

100

Sample Output

6

6

114

解析

因为a,b都是整数,而且b^2=2*a*(a+1)^2<=1e19,所以a<2*1e6,同时b=sqrt(2*a)(a+1),可以用i枚举a,2*a=4*i*i ->b=2*i*(2*i*i+1)

因为数据范围极大,所以要用%llu

代码

#include
#define MAX 1400005
using namespace std;
unsigned long long ans[MAX],i;
void solve()
{for(i=1;i