Solución a la Tarea 1: El Problema 3n+1

A continuación muestro un programa que resuelve el problema propuesto. Observe que todo el programa consiste de un ciclo (que se detiene cuando hemos alcanzado el número 1) y un par de decisiones (una para determinar la paridad y así hacer el cálculo correcto, la otra para determinar si hemos encontrado un número más grande).

#include <stdio.h>

int main(void)
{
  long int l, m, n;

  scanf("%ld", &n);
  l = 1;
  m = n;
  while (n != 1) {
    l = l+1;
    if (n % 2 == 1)
      n = 3*n+1;
    else
      n = n/2;
    if (n > m)
      m = n;
  }
  printf("%ld %ld\n", l, m);
  return 1;
}

Los valores de entrada y salida empleados para la evaluación fueron los siguientes:

Entrada  Salida
      1  1 1
      2  2 2
      5  6 16
     10  7 16
     22  16 52
     50  25 88
    100  26 100
    222  71 9232
    500  111 9232
   1000  112 9232
   2222  33 7504
  22222  57 427192
 222222  117 4054696
 999999  259 22781248
1000000  153 1000000