Advertisement
nasho97

Mod1Cuest3Preg2

Aug 17th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.87 KB | None | 0 0
  1. //Ignacio Alejandro Ruiz Garrido
  2. //14 de Agosto
  3. //Conjetura de Collatz
  4. //LLevar cualquier número, dentro del rango, al número 1 mediante dos patrones matemáticos.
  5.  
  6. #include <stdio.h>
  7.  
  8. int main ()                                                         //Empieza el programa
  9. {
  10.     unsigned int Numero;                                            //Se crea la variable donde guardaremos y manipularemos el número
  11.  
  12.     while ((Numero<1)||(Numero>100000000))                          //Validación del número, el cual tiene que estar entre el 1 y el 100000000
  13.     {
  14.         scanf("%u",&Numero);                                        //Se pide el número al usuario, hasta que esté dentro de los rangos
  15.     }
  16.  
  17.     if (Numero==1)                                                  //If donde si el número entregado es igual a uno, directamente se tira por pantalla, ya que está listo.
  18.     {
  19.         printf("%u",Numero);                                        //se muestra por pantalla el número ya listo
  20.     }
  21.     else                                                            //Para el caso donde el número no sea 1 y de verdad haya que hacer algo
  22.     {
  23.         do                                                          //Ciclo donde se aplica la Conjetura de Collatz    
  24.         {
  25.             if (Numero%2==0)                                        //Si el número es divisible por dos, qquiere decir que es par y entra en la condición
  26.             {
  27.                 Numero=Numero/2;                                    //Se le aplica la Conjetura, y se divide por dos. y el resultado se lo asignamos a la misma variable
  28.                 printf("%u ", Numero);                              //Se muestra por pantalla en nuevo número obtenido
  29.             }
  30.             else                                                    //El otro caso, y único posible, donde el número es impar
  31.             {
  32.                 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.
  33.                 printf("%u ", Numero);                              //Se muestra por pantalla el nuevo número
  34.             }
  35.         }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 -->
  36.     }                                                               //-->llegar a uno
  37.    
  38.     return 0;
  39. }                                                                   //Termina el programa
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement