DEV-C++问题
用到的代码最好不要太高级
题目描述
一定数目的点或圆在等距离的排列下可以堆成一个等边三角形。
前 6 个三角形堆分别需要 1 3 6 10 15 21个点。
第 n 三角形数是从 开始的n 个自然数的和,即 n(n+1)/2
给定一个正整数x,请你判断 x 个圆 能否构成两个三角形堆(可以相同)。
输入输出格式
输入格式:
测试含多组数据,第一行为T
接下来T行,每行一个正整数 x。
输出格式:
输出T行,如果 x 可以表示为两个三角形数之和,则输出 YES,否则输出 NO。
输入输出样例
输入样例#1:
2
256
512
输出样例#1:
YES
NO
提示信息
数据范围
前 6 个测试点满足 1≤x≤1000。
所有测试点满足 1≤x≤10^9。