Я пишу метод для хранения простого множителя числа. Меня просят использовать двумерный массив для хранения его простого множителя и номера фактора.
public static int[][] getMatrix (long x){
int[][] matrix =new int[10][2];
int count;
for (int i = 2, j = 0; i <=x / 2; i++) {
count=0;
while (x % i == 0) {
x = x/i;
count++;
}
matrix[j][0] = i;
matrix[j][1] = count;
j++;
}
return matrix;
}
Но этот код хранит данные только в первой строке массива. Может ли кто-нибудь помочь мне исправить это или лишить других идей? если я использую следующий код для вывода результата.
for(int row=0;row<b_matrix.length;row++)
{
for(int column=0;column<2;column++)
{
System.out.print(b_matrix[row][column]+" ");
}
}
И x = 9, я получил это:
2 0 3 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
x = 6 Я получил это:
2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
, например: 6
matrix[0][0]=2 matrix[0][1]=1
matrix[1][0]=3 matrix[1][1]=1 //can't store
, например: 9
matrix[0][0]=2 matrix[0][1]=0//only output the next row when this equals to 0
matrix[1][0]=3 matrix[1][1]=2