Factorizar un número en Java

En primer lugar, ¿En qué consiste factorial un número? Para factorizar un número o descomponerlo en factores efectuamos sucesivas divisiones entre sus divisores primos hasta obtener un uno como cociente.
Con la siguiente imagen seguro que os sonará mejor:


Pues eso es lo que va a realizar nuestro siguiente programa, mostrar por pantalla los números. Por ejemplo, si dividimos en factores el número de la imagen anterior (432) por pantalla mostrará 2 2 2 2 3 3 3.
Dejémonos ya de explicaciones y mostremos el código del programa:
import java.util.Scanner;

class Factorizar {

    public static void main(String[] args) {

        Scanner miScanner = new Scanner(System.in);

        int num;

        int divisor = 2;

       

        System.out.print("Introduce el número a dividir en factores: ");

        num = miScanner.nextInt();

       

        System.out.print("Los factores del número " + num + " son: ");

       

        while(num != 1) {

            if(num % divisor == 0){

                System.out.print(divisor + " ");

                num = num / divisor;

            }else {

                divisor++;

            }

        }

    }

}


La primera parte del código es bastante sencilla, se crea un objeto Scanner para poder introducir el número por el teclado y se crean dos variables de tipo entero, una de nombre num que almacenará el número que se introduce y otra de nombre divisor que contendrá el número por el que se dividirá. 
Lo siguiente es imprimir por pantalla que se introduzca el número y almacenar el número en la variable num.
La siguiente parte es la importante en el código, la que realiza todo el trabajo. Empieza con un bucle while que mientras que el número introducido sea distinto a 1 se repetirá el bucle. Dentro del bucle se ha creado un condicional if con la condición de que si el resto de dividir el num entre el divisor es igual a 0 imprima por pantalla el número divisor y luego modifica el valor de la variable num que, tendrá el valor de dividir num entre el divisor. En caso contrario de que no se cumpla el if entonces el divisor aumenta en 1.
Si no habéis entendido alguna parte no dudéis en dejar un comentario con vuestro problema

5 comentarios:

  1. Este comentario ha sido eliminado por un administrador del blog.

    ResponderEliminar
  2. Felicitaciones por la iniciativa. Aqui unos comentarios o correcciones:
    - Cambiar "factorial" por "factorizar" en la primera linea.
    En el programa mismo:
    - Que ocurre si el numero ingresado es 0?
    - o si es negativo?

    ResponderEliminar
    Respuestas
    1. Si es 0 puedes poner que el programa acabe y si es negativo puedes poner un || en el while

      Eliminar
  3. yo quisiera saber pára que sirve cada linea del codigo

    ResponderEliminar
  4. como podría hacer los mismo con return(retorno de valores)??

    ResponderEliminar

Privacy Policy for Broma Detector de Mentiras con Huella

Privacy Policy Privacy Policy Broma detector de mentiras con huella app as ...