From e5a1eb3a012293ddb7e7110a084855d94106d9a3 Mon Sep 17 00:00:00 2001
From: Cristiano Magro <cristiano.magro@vola.it>
Date: Sat, 04 Oct 2025 23:21:31 +0200
Subject: [PATCH] alcuni miglioramenti per ridurre i tempi di esecuzione

---
 src/main/java/NumeroPrimo.java |   23 ++++++++++++++++-------
 1 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/src/main/java/NumeroPrimo.java b/src/main/java/NumeroPrimo.java
index ab582e9..092121f 100644
--- a/src/main/java/NumeroPrimo.java
+++ b/src/main/java/NumeroPrimo.java
@@ -1,10 +1,13 @@
 public class NumeroPrimo {
     public boolean isPrimo(int numero) {
-        if(numero <= 1) {
+        if (numero <= 1) {
             return false;
         }
-        for(int i = 2; i <= Math.sqrt(numero); i++) {
-            if(numero % i == 0) {
+        if (numero % 2 == 0) {
+            return false;
+        }
+        for (int i = 3; i <= Math.sqrt(numero); i += 2) {
+            if (numero % i == 0) {
                 return false;
             }
         }
@@ -15,13 +18,19 @@
         NumeroPrimo np = new NumeroPrimo();
 
         int limite = Integer.parseInt(args[0]);
-        
+
+        long startTime = System.nanoTime();
         int conta = 1;
-        for(int i = 1; i <= limite; i++) {
-            if(np.isPrimo(i)) {
-                System.out.println(conta + " " + i );
+        for (int i = 3; i <= limite; i += 2) {
+            if (np.isPrimo(i)) {
+                System.out.println(conta + " " + i);
                 conta++;
             }
         }
+
+        long endTime = System.nanoTime(); // ⏱️ Fine
+
+        long duration = endTime - startTime; // in nanosecondi
+        System.out.println("Tempo di esecuzione: " + (duration / 1_000_000) + " ms");
     }
 }

--
Gitblit v1.8.0