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