#include <stdio.h>
int div3(int x){
if(x>5){
int a = x>>2;
int b = x&0x03;
return a + div3(a+b);
} else {
return x>2;
}
}
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+CgppbnQgZGl2MyhpbnQgeCl7CglpZih4PjUpewoJCWludCBhID0geD4+MjsKCQlpbnQgYiA9IHgmMHgwMzsKCQlyZXR1cm4gYSArIGRpdjMoYStiKTsKCX0gZWxzZSB7CgkJcmV0dXJuIHg+MjsKCX0KfQoKaW50IG1haW4odm9pZCkgewoJZm9yKGludCBpPTA7aTw9MjU1O2krKyl7CgkJaW50IHkgPSBkaXYzKGkpOwoJCWlmKHkhPWkvMyl7CgkJCXByaW50ZigiJWQgdnMgJWQgYXQgJWRcbiIsIHksIGkvMywgaSk7CgkJfQoJfQoJcmV0dXJuIDA7Cn0K