#include <stdio.h>
int main(void) {
unsigned maxSteps=1;
for (unsigned B=2; B<=8192; ++B) {
for (unsigned A=1; A<B; ++A) {
unsigned gcd=A;
unsigned steps=0;
for (unsigned r=B%gcd; r>0; gcd=r, r=B%gcd) {
++steps;
}
if (steps > maxSteps) {
maxSteps = steps;
}
}
if (!(B&(B-1))) {
printf("%d - %d\n", B
, maxSteps
); }
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbih2b2lkKSB7Cgl1bnNpZ25lZCBtYXhTdGVwcz0xOwoJZm9yICh1bnNpZ25lZCBCPTI7IEI8PTgxOTI7ICsrQikgewoJCWZvciAodW5zaWduZWQgQT0xOyBBPEI7ICsrQSkgewoJCQl1bnNpZ25lZCBnY2Q9QTsKCQkJdW5zaWduZWQgc3RlcHM9MDsKCQkJZm9yICh1bnNpZ25lZCByPUIlZ2NkOyByPjA7IGdjZD1yLCByPUIlZ2NkKSB7CgkJCQkrK3N0ZXBzOwoJCQl9CgkJCWlmIChzdGVwcyA+IG1heFN0ZXBzKSB7CgkJCQltYXhTdGVwcyA9IHN0ZXBzOwoJCQl9CgkJfQoJCWlmICghKEImKEItMSkpKSB7CgkJCXByaW50ZigiJWQgLSAlZFxuIiwgQiwgbWF4U3RlcHMpOwoJCX0KCX0KCXJldHVybiAwOwp9Cg==