一个数的立方和
输入:第一行是一个不大于100的正整数,表示测试数据的组数。接下来是各组测试数据。
每组数据为一行,只有一个正整数,且值不大于1,000,000,000,表示要判断的整数。
输出:对于每组数据输出一行, 如果给定整数可以写成两个整数的立方和,则输出“Yes”,否则输出“No”
int main()
{
int n, x, i, j;
cin>>n;
while (n--)
{
cin >> x;
if (x < 0)
{
printf("No\n");
continue;
}
for (i = 1; i*i*i <= x; i++);
--i;
x -= i * i*i;
if (x == 0) {
printf("No\n");
return 0;
}
for (j = 1; j*j*j <= x; j++);
--j;
x -= j * j*j;
printf("%s\n",x? "No" : "Yes");
}
return 0;
}