Buonasera a tutti.. ho un problema con una semplice scomposizione in fattori primi...
La classe che contiene il metodo è questa:
codice:
public class Fattorizzazione {       
    int[] a;
    public long[] scomponi(int n) {
        long[] a = new long[n];
        int i = 0, c = 2;
    while(n > 1) {
            if (n%c == 0) {
                a[i] = c;
                n = n / c;
                i++;
            } else {
                c++;
                i++;
            }
        }
        return a;
       }
}
Nel mainFrame, al click del bottone, si legge dal TextField il numero da scomporre e si stampano i fattori.

codice:
private void bottoneScomponiActionPerformed(java.awt.event.ActionEvent evt) {                                                        int s = Integer.parseInt(n.getText());
        
        if (s == 0)
            JOptionPane.showMessageDialog(this, "Non hai immesso un valore valido", "Errore", JOptionPane.DEFAULT_OPTION);
        else {
            fat.scomponi(s);
            array = new long[s];
            array = fat.scomponi(s);
            fattori.setText(n.getText() + " = {");
            fattori.setText(fattori.getText() + String.valueOf(array[0]));
            for (i = 1; i < array.length; i++)
                if (array[i] > 0)
                    fattori.setText(fattori.getText()+","+String.valueOf(array[i]));
            fattori.setEditable(false);
            fattori.setText(fattori.getText() + "}");
        }
    }
Il problema è che con numero come ad esempio 23 o 45, tra i fattori mi stampa anche lo zero.. perché!? Vi ringrazio in anticipo e scusate se è una cosa babba