Ciao a tutti,
Scusate il titolo, ma non sapevo proprio come definire il problema.
Ho una (semplicissima) funzione che mi permette di individuare se un numero è primo.
Sapete spiegarmi per quale ragione, in questo modo funziona:
Ma se facciocodice:public static boolean isPrimo(int n) { if(n==1) return false; else if((n%2==0) && (n!=2)) return false; for(int i=3; i<n; i+=2) { if((n%i == 0) && (n!=i)) return false; } return true; }
Aggiungendo cioè (int)Math.sqrt(n) questa non funziona più, dicendomi che anche 9 (e gli altri dispari) sono primi?codice:public static boolean isPrimo(int n) { if(n==1) return false; else if((n%2==0) && (n!=2)) return false; for(int i=3; i<((int)Math.sqrt(n)); i+=2) { if((n%i == 0) && (n!=i)) return false; } return true; }
Grazie! ^^

Rispondi quotando
Grazie per il suggerimento!
