Brian Kernighan’s Algorithm
#include <stdio.h>
int countSetBits(unsigned int n) {
// Write your code here
// Brian Kernighan’s Algorithm
int count = 0;
while(n)
{
// clears the lowest set bit
n &= (n-1);
count++;
}
return count;
}
int main() {
int n;
scanf("%d", &n);
printf("%d", countSetBits(n));
return 0;
}
Input
5
Expected Output
2