Ja teda nevim, co ti tam nejde, ale mne ten kod funguje:
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
public static void main(String... args) {
System.out.println(Arrays.toString(prvociselnyRozklad(20)));
}
//Metoda, která vrátí prvočíselný rozklad čísla
public static int[] prvociselnyRozklad(int cislo)
{
int prvocinitel = 2;
ArrayList<Integer> list = new ArrayList<Integer>();
while (prvocinitel <= cislo) //je-li prvocinitel mensi ci roven
{
if (cislo%prvocinitel == 0) //je-li delitelne prvocinitelem
{
cislo = cislo/prvocinitel; //vydelime a ulozime do cislo
// System.out.print(" " + prvocinitel); //vypis prvocinitele
list.add(prvocinitel);
}
else
{
prvocinitel++;
}
}
int[] ints = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
ints[i] = list.get(i);
}
return ints;
}
}
vypisuje spravne 2, 2, 5...