题目描述Bob今天碰到一个问题,他想知道x3+y3 = c 是否存在正整数解? 输入第一行是一个整数K(K≤20000),表示样例的个数。 以后每行一个整数c(2≤c≤109) 输出每行输出一个样例的结果,如果存在,输出“Yes”,否则输出“No”。(引号不用输出) 样例输入2 28 27 样例输出Yes No |
以前不理解,现在懂了,哈哈
</pre><pre name="code" class="cpp">/*
关于set容器库的使用比较多。
可以参考我的博客
*/
#include<iostream>
#include<cstdio>
#include<set>
using namespace std;
int main()
{
int i,j,n;
int flag,a[10001];
while(cin>>n)
{
flag=0;
set<int> Q;//建立一个Q容器
for(i=1;i<=1000;i++)
{
a[i]=i*i*i;
}
Q.clear();//清除Q
for(i=1;i<=1000;i++)
{
for(j=1;j<=1000;j++)
{
Q.insert(a[i]+a[j]);//插入,这个在set中用的比较多
flag=Q.count(n);//统计有没有和n相等的如果相等的话就返回1否则返回0
}
}
if(flag)
puts("YES");
else
puts("NO");
}
return 0;
}