问题 6889 --双倍三角数

6889: 双倍三角数★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 49  解决: 19
[提交][状态][命题人:]

题目描述

对于给定正整数 k,我们称 k * (k + 1) / 2 为三角数。身为学习委员的小明认为三角数的判断太简单了,想请参加编程兴趣班的你判断一个数是不是双倍三角数。比如256 = (2 * 3 / 2) + (22 * 23 / 2),即256可以由两个三角数相加得到,他便是双倍三角数,而253则不是双倍三角数,因为无法找到两个三角数相加得到他。

输入

第一行一个正整数T表示需要判断的样例数(1T200)

接下来T行,每行一个正整数 x 代表你要判断的正整数(1x10^12)

输出

对于每个正整数 x,若是双倍三角数,则输出”YES”;否则输出”NO”

样例输入
Copy
5
2
6
8
16
7
样例输出
Copy
YES
YES
NO
YES
YES

提示

以上样例中,8不是双倍三角数,其余均是双倍三角数。

根据题目数据范围 x 变量您应该使用long long。

来源

[提交][状态]