#include <stdio.h>
int main(void) {
int i;
for(i = 1; i < 100000; ++i) {
int expected = (i & -i);
int actual = (int)(1U << __builtin_ctz((unsigned)i));
if(expected
!= actual
) printf("Does not work for %d {%d != %d}\n", i
, expected
, actual
); }
printf("rest all are working\n"); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbih2b2lkKSB7CglpbnQgaTsKCQoJZm9yKGkgPSAxOyBpIDwgMTAwMDAwOyArK2kpIHsKCQlpbnQgZXhwZWN0ZWQgPSAoaSAmIC1pKTsKCQlpbnQgYWN0dWFsID0gKGludCkoMVUgPDwgX19idWlsdGluX2N0eigodW5zaWduZWQpaSkpOwoJCWlmKGV4cGVjdGVkICE9IGFjdHVhbCkgcHJpbnRmKCJEb2VzIG5vdCB3b3JrIGZvciAlZCB7JWQgIT0gJWR9XG4iLCBpLCBleHBlY3RlZCwgYWN0dWFsKTsKCX0KCXByaW50ZigicmVzdCBhbGwgYXJlIHdvcmtpbmdcbiIpOwoJcmV0dXJuIDA7Cn0K