#include <iostream>
using namespace std;
int bitCount( unsigned int n) {
int counter = 0 ;
while ( n) {
counter ++ ;
n & = ( n - 1 ) ;
}
return counter;
}
int main( ) {
printf ( "# 1-bits in base 2 representation of %u = %d, should be 1\n " ,
0b10000 , bitCount ( 0b10000 ) ) ;
printf ( "# 1-bits in base 2 representation of %u = %d, should be 0\n " ,
0 , bitCount ( 0 ) ) ;
printf ( "# 1-bits in base 2 representation of %u = %d, should be 1\n " ,
1 , bitCount ( 1 ) ) ;
printf ( "# 1-bits in base 2 representation of %u = %d, should be 16\n " ,
2863311530u, bitCount ( 2863311530u) ) ;
printf ( "# 1-bits in base 2 representation of %u = %d, should be 1\n " ,
536870912 , bitCount ( 536870912 ) ) ;
printf ( "# 1-bits in base 2 representation of %u = %d, should be 32\n " ,
4294967295u, bitCount ( 4294967295u) ) ;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IGJpdENvdW50KHVuc2lnbmVkIGludCBuKSB7CgogIGludCBjb3VudGVyID0gMDsKICB3aGlsZShuKSB7CiAgICBjb3VudGVyICsrOwogICAgbiAmPSAobiAtIDEpOwogIH0KICByZXR1cm4gY291bnRlcjsKfQoKaW50IG1haW4oKSB7CiAgICBwcmludGYgKCIjIDEtYml0cyBpbiBiYXNlIDIgcmVwcmVzZW50YXRpb24gb2YgJXUgPSAlZCwgc2hvdWxkIGJlIDFcbiIsCiAgICAgICAgMGIxMDAwMCwgYml0Q291bnQgKDBiMTAwMDApKTsKICAgIHByaW50ZiAoIiMgMS1iaXRzIGluIGJhc2UgMiByZXByZXNlbnRhdGlvbiBvZiAldSA9ICVkLCBzaG91bGQgYmUgMFxuIiwKICAgICAgICAwLCBiaXRDb3VudCAoMCkpOwogICAgcHJpbnRmICgiIyAxLWJpdHMgaW4gYmFzZSAyIHJlcHJlc2VudGF0aW9uIG9mICV1ID0gJWQsIHNob3VsZCBiZSAxXG4iLAogICAgICAgIDEsIGJpdENvdW50ICgxKSk7CiAgICBwcmludGYgKCIjIDEtYml0cyBpbiBiYXNlIDIgcmVwcmVzZW50YXRpb24gb2YgJXUgPSAlZCwgc2hvdWxkIGJlIDE2XG4iLAogICAgICAgIDI4NjMzMTE1MzB1LCBiaXRDb3VudCAoMjg2MzMxMTUzMHUpKTsKICAgIHByaW50ZiAoIiMgMS1iaXRzIGluIGJhc2UgMiByZXByZXNlbnRhdGlvbiBvZiAldSA9ICVkLCBzaG91bGQgYmUgMVxuIiwKICAgICAgICA1MzY4NzA5MTIsIGJpdENvdW50ICg1MzY4NzA5MTIpKTsKICAgIHByaW50ZiAoIiMgMS1iaXRzIGluIGJhc2UgMiByZXByZXNlbnRhdGlvbiBvZiAldSA9ICVkLCBzaG91bGQgYmUgMzJcbiIsCiAgICAgICAgNDI5NDk2NzI5NXUsIGJpdENvdW50ICg0Mjk0OTY3Mjk1dSkpOwoJcmV0dXJuIDA7Cn0=
stdout
# 1-bits in base 2 representation of 16 = 1, should be 1
# 1-bits in base 2 representation of 0 = 0, should be 0
# 1-bits in base 2 representation of 1 = 1, should be 1
# 1-bits in base 2 representation of 2863311530 = 16, should be 16
# 1-bits in base 2 representation of 536870912 = 1, should be 1
# 1-bits in base 2 representation of 4294967295 = 32, should be 32