Нижеследующее не работает должным образом, но в правильном направлении того, что вы ищете. Вам не хватает части массива заполнения, что можно сделать следующим образом. Я знаю, что в приведенном ниже коде есть некоторые глюки, которые можно исправить, посмотрев на них. Но это определенно даст вам направление. Если вы все еще сталкиваетесь с проблемами, пожалуйста, сообщите нам об этом.
public static long[][] primeFactorization(long l) {
//n = 6600 = 2^3*3^1*5^2*11^1
// z[0][4] = 2|3|5|11 - coefficient
// z[1][4] = 3|1|2|1 - power
int count = 0;
int i=2;
long[][] x = new long[2][10];
while(l%2==0) {
l=l/2;
count++; //power 8 = 2.2.2 => count = 3
}
x[0][0]=2;
x[1][0]=count;
//ToDo: save i=2 in array[0][] = {2,...};
int row=0;
int col=1;
for (i = 3; i <= l; i = i+2) {
count=0; //setting count to zero for every divisor
// While i divides l, print i and divide l
while (l%i == 0) {
count++; //ToDo: save the power in array[1][]
l = l/i;
}
x[row][col]=i;
x[row+1][col]=count;
col++;
}
return x;
}