#include <stdio.h>int main() { unsigned int max_in = 0; unsigned int max_out = 0; unsigned int i = 0; unsigned int r = 0; for (i = 1; i < 1000000; i++) { r = calc(i, 1); if (i % 10000 == 0) { printf("on %d, yielded %d\n", i, r); } if (r > max_out) { max_in = i; max_out = r; printf("new max: %d for i=%d\n", r, i); } } printf("max out: %d with i=%d\n", max_out, max_in); return 0;}int calc(unsigned int in, int n) { if (in == 1) { return n; } if (in % 2 == 0) { return(calc(in / 2, n + 1)); } else { return(calc(in * 3 + 1, n + 1)); }}