#include <iostream>
using namespace std;
void print_bits(unsigned int n) {
for (int i = 7; i >= 0; i--)
cout << ((n >> i) & 1);
cout << endl;
}
bool check_same_set_and_unset_bits(int n) {
int set = 0, unset = 0;
while (n) {
if (n & 1)
set++;
else
unset++;
n = n >> 1;
}
if (set == unset)
return true;
return false;
}
int main()
{
int n = 178;
print_bits(n);
if (check_same_set_and_unset_bits(n))
cout << "Yes" << endl;
else
cout << "No" << endl;
n = 179;
print_bits(n);
if (check_same_set_and_unset_bits(n))
cout << "Yes" << endl;
else
cout << "No" << endl;
return 0;
}
/*
run:
10110010
Yes
10110011
No
*/