Pages

viernes, 1 de febrero de 2013

Programa para comprobar la Conjetura de Collatz código en C

Considere siguiente proceso repetitivo para un número entero dado: si el número es 1, el proceso termina. De lo contrario,  si es par se divide entre 2, y si es impar se multiplica por 3 y se le suma 1. Si empezamos con 6, por ejemplo, obtendremos la sucesión de números 6, 3, 10, 5, 16, 8, 4, 2, 1. La conjetura de Collatz dice que, a partir de cualquier número inicial, la sucesión obtenida siempre termina en 1.

Escriba un programa que permita verificar la conjetura de Collatz para cualquier entero dado, y que imprima la secuencia correspondiente.

Codigo Fuente en C
#include <stdio.h>
int main ()
{
    int i, num;
    printf("Ingrese un numero: ");
    scanf("%d",&num);
    printf("\n=> ");

    while(num!=1){
        if(num%2 == 0)
            num = num/2;
        else
            num = num*3 + 1;
        printf("%d ", num);
    }
    getch();
    return 0;
}


13 comentarios:

Unknown dijo...

Merci! M'a beacoup aidé.

Joc Kmilo dijo...

Y en java(Netbeans o Eclipse) como seria? Me aria el favor de mostrar.... Gracias

Unknown dijo...
Este comentario ha sido eliminado por el autor.
Jefferson Conza dijo...

Gracias por el código : )

geovanny dijo...
Este comentario ha sido eliminado por el autor.
Unknown dijo...

Da error en getch()

Tamara Jimenez dijo...

TheTatos1000, elimina lo del getch, y listo

Anónimo dijo...

Solo introduzcan la libreria #include para que funcione el getch

Unknown dijo...

bueno para que funcionara el getch yo puse tambien la libreria #include

Unknown dijo...

perfecto gracias

phanter leo dijo...

que paso con la variable i?

Unknown dijo...

Escriba un programa que reciba cuatro calificaciones de un estudiante y devuelva el promedio y la máxima y la mínima calificación.

Anónimo dijo...

Poned el programa dentro de un bucle for y comprobareis un rango de números mucho más ámplio.

Publicar un comentario