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 desde una entrada dada (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 desde
//una entrada dada (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 entrada 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("--------------
todos los factores");
i++;
}
}
// i codifico un método findFactors(int n)
// que devuelve un array....----aquí está el truco----
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í encuentro factores
{
// aquí tenemos un factor
factorsArray[i]=factors;
i++;
}
factors++;
}
return factorsArray;
}
// para probar printMatrix 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]+ "
todos los factores" );
}
System.out.println();
}
}
public static void PrintArray(int m[])
{ for(int i=0;i<m.length;i++)
System.out.print(m[i]+ "
todos los factores" );
}
}
El siguiente video es la solución:
Desde un array de factores creamos una matriz llena de números divisores.