Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Ignacio Alejandro Ruiz Garrido
- //14 de Agosto
- //Conjetura de Collatz
- //LLevar cualquier número, dentro del rango, al número 1 mediante dos patrones matemáticos.
- #include <stdio.h>
- int main () //Empieza el programa
- {
- unsigned int Numero; //Se crea la variable donde guardaremos y manipularemos el número
- while ((Numero<1)||(Numero>100000000)) //Validación del número, el cual tiene que estar entre el 1 y el 100000000
- {
- scanf("%u",&Numero); //Se pide el número al usuario, hasta que esté dentro de los rangos
- }
- if (Numero==1) //If donde si el número entregado es igual a uno, directamente se tira por pantalla, ya que está listo.
- {
- printf("%u",Numero); //se muestra por pantalla el número ya listo
- }
- else //Para el caso donde el número no sea 1 y de verdad haya que hacer algo
- {
- do //Ciclo donde se aplica la Conjetura de Collatz
- {
- if (Numero%2==0) //Si el número es divisible por dos, qquiere decir que es par y entra en la condición
- {
- Numero=Numero/2; //Se le aplica la Conjetura, y se divide por dos. y el resultado se lo asignamos a la misma variable
- printf("%u ", Numero); //Se muestra por pantalla en nuevo número obtenido
- }
- else //El otro caso, y único posible, donde el número es impar
- {
- Numero=(Numero*3)+1; //Se aplica conjetura, y se multiplica por 3 y después se le suma 1, para que el resultado se guarde.
- printf("%u ", Numero); //Se muestra por pantalla el nuevo número
- }
- }while(Numero>1); //Este ciclo no termina hasta que el número ingresado se transforme en 1, y según la conjetura siempre debería -->
- } //-->llegar a uno
- return 0;
- } //Termina el programa
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement