/* verifica se un naturale in input e' primo * versione efficiente */ import javax.swing.JOptionPane; public class PrimalitaEfficiente { public static void main(String[] args) { int n, divisore; int maxDiv; boolean trovatoDivisore; String s = JOptionPane.showInputDialog("Digita un intero positivo"); n = Integer.parseInt(s); maxDiv = (int) Math.sqrt(n); divisore = 2; trovatoDivisore = false; while(divisore <= maxDiv) { if((n%divisore) == 0) { trovatoDivisore = true; break; } divisore++; } if(trovatoDivisore) JOptionPane.showMessageDialog(null, "Il numero " + n + " e' composto."); else JOptionPane.showMessageDialog(null, "Il numero " + n + " e' primo."); System.exit(0); } }