Salve, qualcuno sa perché il metodo "threeSmooth" restituisce sempre false?
Mi prende sempre la condizione anche con vettori contenenti solo 2 e 3
(gli passo il vettore ottenuto con il metodo "factorization" che consiste nei fattori primi di un numero)
int[] factorization (int a) {
int[] f = new int [a] ;
int p = 0 ;
int residue = a ;
int n = 2 ;
while (residue > 1) {
while (residue % n != 0) {
n += 1 ;
}
f[p] = n ;
p += 1 ;
residue /= n ;
}
f = cleanArray(f) ;
return f ;
}
boolean threeSmooth (int[] f) {
for (int i = 0; i < f.length; i++) {
if ( f[i] != 2 || f[i] != 3 ) {
return false ;
}
}
return true ;
}