In this

**HackerEarth Set numbers problem solution**, you are given the binary representation of a number. You must consider the highest number of set bits in the binary representation to complete your task. For example, 23 is represented as 10111 in binary and it contains four-set bits (1-bits). You are also given a number N and your task is to determine the number that is less than or equal to N and contains the maximum number of set bits in its binary representation.In other words, print a number K that is less than or equal to N such that the number of set bits in the binary representation of K must be maximum.

## HackerEarth Set numbers problem solution.

`#include "bits/stdc++.h"`

using namespace std;

int main(){

int t; cin>>t;

while(t--)

{

int N; cin>>N;

int ans = 1;

for(int i=1; i<32; i++)

{

int num = pow(2, i) - 1;

if(num <= N)

{

ans = num;

}

}

cout<<ans<<"\n";

}

return 0;

}

### Second solution

`#include <bits/stdc++.h>`

using namespace std;

typedef long long ll;

const int maxn = 5e5 + 14;

int n;

int main(){

ios::sync_with_stdio(0), cin.tie(0);

int t;

cin >> t;

while(t--){

cin >> n;

for(ll x = 1ll << 31; x >= 0; x >>= 1)

if(x - 1 <= n){

cout << x - 1 << '\n';

break;

}

}

}

## 0 Comments