1. Define una matriz de enteros (n * n)
2. Crea un método estático que imprima la matriz
2.1 Crea un método estático que imprima un array.
3. Crea un ciclo que inserte el número de factores de un input dado (n desde 1 hasta 100) e imprima todos los arrays y luego inserte los elementos del array en una matriz de todos los números factorizados.
package factortomatrix; public class FactorToMatrix { public static void main(String[] args) { //1. Define una matriz de enteros (n * n) //2. Crea un método estático que imprima la matriz //2.1 Crea un método estático que imprima un array //3. Crea un ciclo que inserte el número de factores de //un input dado (n desde 1 hasta 100) e imprima // todos los arrays y luego inserte los elementos del array // en una matriz de todos los números factorizados. int a[][]= new int[4][4]; int i=1,n=100; /* i creo un ciclo que pone i como input a un método que encuentra factores i comienzo desde 1 y voy hasta 100 */ while(i<n) { System.out.println("n dado :"+ i); //randomMatrixCreator(a,16); //PrintMatrix(a); int factors[]= new int[i]; factors=FindFactors(i); PrintArray(factors); System.out.println("--------------"); i++; } } // i codifico un findFactors(int n) // método que devuelve un array....----aquí la trampa---- public static int[] FindFactors(int n) { int factors=1;int len=n/2+1; int factorsArray[] = new int[len]; int i=0; while(factors<len) { if (n%factors==0) // aquí i encuentro factores { // aquí tenemos un factor factorsArray[i]=factors; i++; } factors++; } return factorsArray; } // para probar printMatrix i creo un randomMatrixCreator public static void randomMatrixCreator(int m[][],int nMax) {// nMax es el valor máximo que inserto en la matriz // desde 0 hasta nMax for(int i=0;i<m.length;i++) { for(int j=0;j<m.length;j++) { m[i][j]=(int)(Math.random()*nMax); } } } public static void PrintMatrix(int m[][]) { for(int i=0;i<m.length;i++) { for(int j=0;j<m.length;j++) { System.out.print(m[i][j]+ " "); } System.out.println(); } } public static void PrintArray(int m[]) { for(int i=0;i<m.length;i++) System.out.print(m[i]+ " "); } } El siguiente video es la solución:
De un array de factores creamos una matriz llena de números divisores.