#include <stdio.h>
int div3(int x){
int y = (x>>2) + (x>>4);
y+=y>>4;
x=(x-y-(y<<1));
y+=((x<<3)+(x<<1)+x)>>5;
return y;
}
int main(void) {
for(int i=0;i<=255;i++){
int y = div3(i);
if(y!=i/3){
printf("%d vs %d at %d\n", y
, i
/3, i
); }
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgZGl2MyhpbnQgeCl7CgkJaW50IHkgPSAoeD4+MikgKyAoeD4+NCk7CgkJeSs9eT4+NDsKCQl4PSh4LXktKHk8PDEpKTsKCQl5Kz0oKHg8PDMpKyh4PDwxKSt4KT4+NTsKCQlyZXR1cm4geTsKfQoKaW50IG1haW4odm9pZCkgewoJZm9yKGludCBpPTA7aTw9MjU1O2krKyl7CgkJaW50IHkgPSBkaXYzKGkpOwoJCWlmKHkhPWkvMyl7CgkJCXByaW50ZigiJWQgdnMgJWQgYXQgJWRcbiIsIHksIGkvMywgaSk7CgkJfQoJfQoJcmV0dXJuIDA7Cn0K