From ffc2df914dc6286928b57dc411316d65e247d7c9 Mon Sep 17 00:00:00 2001 From: TurinTech Bot Date: Wed, 18 Dec 2024 15:11:25 +0000 Subject: [PATCH] Artemis Changes --- app/src/main/java/algorithms/Primes.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/algorithms/Primes.java b/app/src/main/java/algorithms/Primes.java index 385bf27..bfa903e 100644 --- a/app/src/main/java/algorithms/Primes.java +++ b/app/src/main/java/algorithms/Primes.java @@ -12,8 +12,8 @@ public static boolean IsPrime(int n) { if (n < 2) { return false; } - for (int i = 2; i < n; i++) { - if (n % i == 0 && i != n) { + for (int i = 2; i * i <= n; i++) { // Optimized loop condition + if (n % i == 0) { return false; } } @@ -45,11 +45,15 @@ public static int SumPrimes(int n) { public static Vector PrimeFactors(int n) { Vector ret = new Vector(); - for (int i = 2; i < n; i++) { - if (n % i == 0 && IsPrime(i)) { + for (int i = 2; i * i <= n; i++) { // Optimized loop condition + while (n % i == 0 && IsPrime(i)) { // Optimized to handle repeated factors ret.add(i); + n /= i; // Reduce n to avoid redundant checks. } } + if (n > 1) { // Add any remaining prime factor. + ret.add(n); + } return ret; } }