#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
vector<int> v;
int main()
{
v.push_back(1);v.push_back(2);
for(int i=0;i<v.size();i++){
if(v.size()>1000) break;
v.push_back((v[i]+1)*(v[i]+1)-1);
int k=(int)v.size();
for(int j=i+1;j<k;j++){
v.push_back((v[i]+1)*(v[j]+1)-1);
}
}
sort(v.begin(),v.end());
vector<int>::iterator new_end=(unique(v.begin(),v.end()));
int n;
while(scanf("%d",&n)!=EOF)
{
vector<int>::iterator it=lower_bound(v.begin(),new_end,n);
if(*it!=n) cout<<"NO!"<<endl;
else cout<<"YES!"<<endl;
}
return 0;
}
HDU 1719 Friend 打表
最新推荐文章于 2019-07-31 21:01:33 发布