#include <iostream>
using namespace std;
void method_bxy(int n)
{
int count = 0;
while(1)
{
if(1 == n)
{
cout << "n 2 " << count <<" "<<endl;
break;
}
if(0 == n%2)
{
++count;
n /= 2;
if(n == 0)
{
cout << "n 2 " << count <<" "<<endl;
break;
}
}
else
{
cout << "n 2 "<<endl;
break;
}
}
}
// a
bool method_a(int n)
{
int i=1;
while(true)
{
if(i > n)
{
return false;
}
if(i == n)
{
return true;
}
i = i * 2;
}
}
// b: a , 2 , ~~
bool method_b(int n)
{
if(n == 1)
{
return true;
}
else
{
do
{
if( n % 2 == 0)
{
n = n / 2;
}
else
{
return false;
}
}while(n != 1);
return true;
}
}
// 3:1000 & 0111 == 0
bool method_c(int n)
{
if(n < 1)
{
return false;
}
else
{
return ((n & (n - 1)) == 0) ? true : false;
}
}
// 4:
bool method_d(int n)
{
if(n < 1)
{
return false;
}
else
{
return (n & (n - 1)) == 0;
}
}
// 5: , ,
//0x10000001, true
#include <math.h>
bool method_e(int n)
{
float ret = log((double)n)/log((double)2);
return abs((int)ret - ret) <= 0.00001;
}
// 6:
void main()
{
int n=8;
method_bxy(n);
if(method_c(n))
cout << "Yes"<<endl;
else
cout <<"No" <<endl;
}