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
Este comentario ha sido eliminado por un administrador del blog.
ResponderEliminarFelicitaciones por la iniciativa. Aqui unos comentarios o correcciones:
ResponderEliminar- Cambiar "factorial" por "factorizar" en la primera linea.
En el programa mismo:
- Que ocurre si el numero ingresado es 0?
- o si es negativo?
Si es 0 puedes poner que el programa acabe y si es negativo puedes poner un || en el while
Eliminaryo quisiera saber pára que sirve cada linea del codigo
ResponderEliminarcomo podría hacer los mismo con return(retorno de valores)??
ResponderEliminar