#include <stdio.h> int countSetBits(unsigned int n) { int count = 0; for(int i = 0; i < 32; i++){ if((n >> i) & 1){ count += 1; } } return count; } int main() { int n; scanf("%d", &n); printf("%d", countSetBits(n)); return 0; }
By using Brian Kernighan's Algorithm. Subtracting and clearing until n becomes 0.