#include<stdio.h>
int main()
{
unsigned int v=1665; // count the number of bits set in v
unsigned int c; // c accumulates the total bits set in v
// option 1, for at most 14-bit values in v:
c = (v * 0x200040008001ULL & 0x111111111111111ULL) % 0xf;
// option 2, for at most 24-bit values in v:
c = ((v & 0xfff) * 0x1001001001001ULL & 0x84210842108421ULL) % 0x1f;
c += (((v & 0xfff000) >> 12) * 0x1001001001001ULL & 0x84210842108421ULL)%0x1f;
// option 3, for at most 32-bit values in v:
c = ((v & 0xfff) * 0x1001001001001ULL & 0x84210842108421ULL) % 0x1f;
c += (((v & 0xfff000) >> 12) * 0x1001001001001ULL & 0x84210842108421ULL) % 0x1f;
c += ((v >> 24) * 0x1001001001001ULL & 0x84210842108421ULL) % 0x1f;
printf("%d",c);
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KaW50IG1haW4oKQp7CnVuc2lnbmVkIGludCB2PTE2NjU7IC8vIGNvdW50IHRoZSBudW1iZXIgb2YgYml0cyBzZXQgaW4gdgp1bnNpZ25lZCBpbnQgYzsgLy8gYyBhY2N1bXVsYXRlcyB0aGUgdG90YWwgYml0cyBzZXQgaW4gdgoKLy8gb3B0aW9uIDEsIGZvciBhdCBtb3N0IDE0LWJpdCB2YWx1ZXMgaW4gdjoKYyA9ICh2ICogMHgyMDAwNDAwMDgwMDFVTEwgJiAweDExMTExMTExMTExMTExMVVMTCkgJSAweGY7CgovLyBvcHRpb24gMiwgZm9yIGF0IG1vc3QgMjQtYml0IHZhbHVlcyBpbiB2OgpjID0gICgodiAmIDB4ZmZmKSAqIDB4MTAwMTAwMTAwMTAwMVVMTCAmIDB4ODQyMTA4NDIxMDg0MjFVTEwpICUgMHgxZjsKYyArPSAoKCh2ICYgMHhmZmYwMDApID4+IDEyKSAqIDB4MTAwMTAwMTAwMTAwMVVMTCAmIDB4ODQyMTA4NDIxMDg0MjFVTEwpJTB4MWY7CgovLyBvcHRpb24gMywgZm9yIGF0IG1vc3QgMzItYml0IHZhbHVlcyBpbiB2OgpjID0gICgodiAmIDB4ZmZmKSAqIDB4MTAwMTAwMTAwMTAwMVVMTCAmIDB4ODQyMTA4NDIxMDg0MjFVTEwpICUgMHgxZjsKYyArPSAoKCh2ICYgMHhmZmYwMDApID4+IDEyKSAqIDB4MTAwMTAwMTAwMTAwMVVMTCAmIDB4ODQyMTA4NDIxMDg0MjFVTEwpICUgMHgxZjsKYyArPSAoKHYgPj4gMjQpICogMHgxMDAxMDAxMDAxMDAxVUxMICYgMHg4NDIxMDg0MjEwODQyMVVMTCkgJSAweDFmOwpwcmludGYoIiVkIixjKTsKcmV0dXJuIDA7Cn0=