The 3n + 1 problem
By: a guest | Jun 8th, 2010 | Syntax:
C | Size: 0.54 KB | Hits: 641 | Expires: Never
#include <stdio.h>
int collatz(int n) {
int i = 1;
while(n > 1) {
if((n % 2) != 0)
n = (3*n) + 1;
else
n = n/2;
++i;
}
return i;
}
int main (int argc, char const *argv[])
{
int i, j;
while(scanf("%d %d", &i, &j) == 2) {
int i2, j2, k;
int max = 0;
if (j < i) {
i2 = j;
j2 = i;
} else {
i2 = i;
j2 = j;
}
for (k = i2; k <= j2; ++k) {
int atual = collatz(k);
if (max < atual) {
max = atual;
}
}
printf("%d %d %d\n", i, j, max);
}
return 0;
}