#include #include int vhodny(int a, int b) { int vhod; if ((a + b) % 2 == 0) { vhod = (a >=b) ? a : b; return vhod; } vhod = (a % 2 == 0) ? a : b; return vhod; } int main(int argc, char** argv) { int a, b; int rozk1[1000000]; while (1) { scanf("%d %d\n", &a, &b); if (a == 0 && b == 0) break; int vhod = vhodny(a,b); int i = 0; while (vhod != 1) { rozk1[i] = vhod; if (vhod % 2 == 0) vhod /= 2; else vhod = 3*vhod + 1; i++; } int nevhod; nevhod = (vhod == a) ? b : a; bool hodn = false; int cnt = 0; while (!hodn) { for (int j = 0; j < i; j++) { if (nevhod == rozk1[j]) { printf("%d needs %d steps, %d needs %d steps, they meet at %d\n", a, (a==vhod) ? j : cnt , b, (b==vhod) ? j : cnt, nevhod); hodn = true; break; } } if (nevhod % 2 == 0) nevhod /= 2; else nevhod = 3*nevhod + 1; cnt++; } } return 0; }