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