/****************************************************************************/ /* Conjetura de Collatz: Sea n un entero positivo, definimos */ /* T(n)= n/2 si n es par o T(n)=(3n+1)/2 si n es impar. */ /* Se conjetura que empezando con un entero cualquiera se llegara */ /* finalmente al numero 1. */ /* */ /* Jaime Suarez <mcripto@bigfoot.com> 2003 */ /* en http://elparaiso.mat.uned.es */ /****************************************************************************/ #include <stdio.h> main(int argc, char *argv[]) { unsigned long n,contador=0; if (argc!=2) { printf("%s <n> comprueba la conjetura de Collatz para n.\n",argv[0]); return 1; } n=atol(argv[1]); while (n!=1) { contador++; printf("%lu, ",n); if (n/2.0==n/2) n/=2; else n=(3*n+1)/2; } printf("1\nNúmero de iteraciones: %lu\n",contador); return 0; }