#include <bitset>
#include <iostream>
using namespace std;
bool isFit(int);
bool isFit2(int);
bool isFit3(int);//移位与1位于,判断最后以为是否为1,然后再移出去,知道为0,注意a=a>>1;(写出a>>1则a的值不会变化!)
void main()
{
// bitset<8> bs(16);//使用低阶位来初始化bs,及用ef两个来初始化bs。
// 亦可以用0x010100011这样形式来初始化bs;
// cout<<bs.count()<<endl;//所以为7
// cout<<bs.to_ulong();
//使用两种方法来判别一个数是不是2的幂
while (1)
{
int num;
cin>>num;
// if (isFit(num))
// if (isFit2(num))
if (isFit3(num))
cout<<"yes"<<endl;
else
cout<<"no"<<endl;
}
}
bool isFit(int a)
{
return ((a&(a-1))==0)?true:false;
/* int b=a&(a-1);
if (b==0)
return true;
else return false;
*/
}
bool isFit2(int a)
{
bitset<8*sizeof(a)>bs (a);
return (bs.count()==1)?true:false;
}
bool isFit3(int a)
{
int b=1;
int sum=0;
while (a)
{
sum+=(a&b);
a=a>>1;
}
return sum==1?true:false;
}