From 4ae594ae740a64da05f980932965d6a1276fcfcf Mon Sep 17 00:00:00 2001 From: TurinTech Bot Date: Mon, 20 Jan 2025 11:31:08 +0000 Subject: [PATCH] Artemis Changes --- app/src/main/java/algorithms/Primes.java | 9 ++- app/src/main/java/control/Single.java | 26 +++---- .../main/java/datastructures/DsVector.java | 11 +-- app/src/main/java/run/java/App.java | 78 ++++++++----------- 4 files changed, 49 insertions(+), 75 deletions(-) diff --git a/app/src/main/java/algorithms/Primes.java b/app/src/main/java/algorithms/Primes.java index bfa903e..b7315e6 100644 --- a/app/src/main/java/algorithms/Primes.java +++ b/app/src/main/java/algorithms/Primes.java @@ -27,10 +27,11 @@ public static boolean IsPrime(int n) { * @return The sum of the first n prime numbers. */ public static int SumPrimes(int n) { - int sum = 0; - for (int i = 0; i < n; i++) { + if (n < 2) return 0; + int sum = 2; // Start with 2, the only even prime + for (int i = 3; i < n; i += 2) { // Skip even numbers after 2 if (IsPrime(i)) { - sum = sum + i; + sum += i; } } return sum; @@ -56,4 +57,4 @@ public static Vector PrimeFactors(int n) { } return ret; } -} +} \ No newline at end of file diff --git a/app/src/main/java/control/Single.java b/app/src/main/java/control/Single.java index 8fefbb8..45a3471 100644 --- a/app/src/main/java/control/Single.java +++ b/app/src/main/java/control/Single.java @@ -11,15 +11,7 @@ public class Single { * @return The sum of the first n natural numbers. */ public static int sumRange(int n) { - int[] arr = new int[n]; - int sum = 0; - for (int i = 0; i < n; i++) { - arr[i] = i; - } - for (int i : arr) { - sum += i; - } - return sum; + return n * (n - 1) / 2; } /** @@ -29,7 +21,10 @@ public static int sumRange(int n) { * @return The maximum value in the array. */ public static int maxArray(int[] arr) { - int max = 0; + if (arr == null || arr.length == 0) { + return Integer.MIN_VALUE; // Or throw an exception + } + int max = arr[0]; for (int i : arr) { if (i > max) { max = i; @@ -45,13 +40,10 @@ public static int maxArray(int[] arr) { * @param m The modulus. */ public static int sumModulus(int n, int m) { - Vector multiples = new Vector(); - for (int i = 0; i < n; i++) { - if (i % m == 0) { - multiples.add(i); - } + int sum = 0; + for (int i = 0; i < n; i += m) { + sum += i; } - - return multiples.stream().mapToInt(Integer::valueOf).sum(); + return sum; } } diff --git a/app/src/main/java/datastructures/DsVector.java b/app/src/main/java/datastructures/DsVector.java index 75f17ed..ed0a434 100644 --- a/app/src/main/java/datastructures/DsVector.java +++ b/app/src/main/java/datastructures/DsVector.java @@ -1,6 +1,7 @@ package datastructures; import java.util.Vector; +import java.util.Collections; public class DsVector { /** @@ -41,15 +42,7 @@ public static Vector searchVector(Vector v, int n) { public static Vector sortVector(Vector v) { Vector ret = new Vector(v); - for (int i = 0; i < ret.size(); i++) { - for (int j = 0; j < ret.size() - 1; j++) { - if (ret.get(j) > ret.get(j + 1)) { - int temp = ret.get(j); - ret.set(j, ret.get(j + 1)); - ret.set(j + 1, temp); - } - } - } + Collections.sort(ret); return ret; } diff --git a/app/src/main/java/run/java/App.java b/app/src/main/java/run/java/App.java index f67e52d..9472919 100644 --- a/app/src/main/java/run/java/App.java +++ b/app/src/main/java/run/java/App.java @@ -12,29 +12,23 @@ public class App { public static void single() { System.out.println("SingleForLoop"); System.out.println("-------------"); - System.out.println(String.format("SumRange(10): %s", Single.sumRange(10))); - System.out.println( - String.format("MaxArray([1, 2, 3, 4, 5]): %s", - Single.maxArray(new int[] { 1, 2, 3, 4, 5 }))); - System.out.println( - String.format("SumModulus(100, 3): %s", Single.sumModulus(100, 3))); + System.out.printf("SumRange(10): %s%n", Single.sumRange(10)); + System.out.printf("MaxArray([1, 2, 3, 4, 5]): %s%n", + Single.maxArray(new int[] { 1, 2, 3, 4, 5 })); + System.out.printf("SumModulus(100, 3): %s%n", Single.sumModulus(100, 3)); System.out.println(); } public static void double_() { System.out.println("DoubleForLoop"); System.out.println("-------------"); - System.out.println( - String.format("SumSquare(10): %s", Double.sumSquare(10))); - System.out.println( - String.format("SumTriangle(10): %s", Double.sumTriangle(10))); - System.out.println( - String.format("CountPairs([1, 2, 3, 4, 5]): %s", - Double.countPairs(new int[] { 1, 2, 3, 4, 5, 2 }))); - System.out.println( - String.format("CountDuplicates([1, 2, 3, 4, 5], [1, 3, 2, 4, 5]): %s", - Double.countDuplicates(new int[] { 1, 2, 3, 4, 5 }, - new int[] { 1, 3, 2, 4, 5 }))); + System.out.printf("SumSquare(10): %s%n", Double.sumSquare(10)); + System.out.printf("SumTriangle(10): %s%n", Double.sumTriangle(10)); + System.out.printf("CountPairs([1, 2, 3, 4, 5]): %s%n", + Double.countPairs(new int[] { 1, 2, 3, 4, 5, 2 })); + System.out.printf("CountDuplicates([1, 2, 3, 4, 5], [1, 3, 2, 4, 5]): %s%n", + Double.countDuplicates(new int[] { 1, 2, 3, 4, 5 }, + new int[] { 1, 3, 2, 4, 5 })); System.out.println(); } @@ -44,23 +38,19 @@ public static void vector() { System.out.println("Vector"); System.out.println("------"); - System.out.println( - String.format("ModifyVector(%s): %s", inputVec.toString(), - DsVector.modifyVector(inputVec).toString())); - System.out.println(String.format("SearchVector(%s, 5): %s", + System.out.printf("ModifyVector(%s): %s%n", inputVec.toString(), + DsVector.modifyVector(inputVec).toString()); + System.out.printf("SearchVector(%s, 5): %s%n", inputVec.toString(), - DsVector.searchVector(inputVec, 5))); - System.out.println(String.format("SortVector(%s): %s", inputVec.toString(), - DsVector.sortVector(inputVec).toString())); - System.out.println( - String.format("ReverseVector(%s): %s", inputVec.toString(), - DsVector.reverseVector(inputVec).toString())); - System.out.println( - String.format("RotateVector(%s, 3): %s", inputVec.toString(), - DsVector.rotateVector(inputVec, 3).toString())); - System.out.println(String.format( - "MergeVectors(%s, %s): %s", inputVec.toString(), inputVec2.toString(), - DsVector.mergeVectors(inputVec, inputVec2).toString())); + DsVector.searchVector(inputVec, 5)); + System.out.printf("SortVector(%s): %s%n", inputVec.toString(), + DsVector.sortVector(inputVec).toString()); + System.out.printf("ReverseVector(%s): %s%n", inputVec.toString(), + DsVector.reverseVector(inputVec).toString()); + System.out.printf("RotateVector(%s, 3): %s%n", inputVec.toString(), + DsVector.rotateVector(inputVec, 3).toString()); + System.out.printf("MergeVectors(%s, %s): %s%n", inputVec.toString(), inputVec2.toString(), + DsVector.mergeVectors(inputVec, inputVec2).toString()); System.out.println(); } @@ -68,11 +58,10 @@ public static void vector() { public static void primes() { System.out.println("Primes"); System.out.println("------"); - System.out.println(String.format("IsPrime(10): %s", Primes.IsPrime(10))); - System.out.println( - String.format("SumPrimes(10): %s", Primes.SumPrimes(10))); - System.out.println(String.format("PrimeFactors(10): %s", - Primes.PrimeFactors(10).toString())); + System.out.printf("IsPrime(10): %s%n", Primes.IsPrime(10)); + System.out.printf("SumPrimes(10): %s%n", Primes.SumPrimes(10)); + System.out.printf("PrimeFactors(10): %s%n", + Primes.PrimeFactors(10).toString()); System.out.println(); } @@ -82,15 +71,14 @@ public static void sort() { System.out.println("------"); Vector inputVec0 = new Vector(initialVec); Sort.SortVector(inputVec0); - System.out.println(String.format( - "SortVector(%s): %s", initialVec.toString(), inputVec0.toString())); + System.out.printf("SortVector(%s): %s%n", initialVec.toString(), inputVec0.toString()); Vector inputVec1 = new Vector(initialVec); Sort.DutchFlagPartition(inputVec1, 5); - System.out.println(String.format("DutchFlagPartition(%s, 5): %s", + System.out.printf("DutchFlagPartition(%s, 5): %s%n", inputVec1.toString(), - inputVec1.toString())); - System.out.println(String.format("MaxN(%s, 5): %s", initialVec.toString(), - Sort.MaxN(initialVec, 5).toString())); + inputVec1.toString()); + System.out.printf("MaxN(%s, 5): %s%n", initialVec.toString(), + Sort.MaxN(initialVec, 5).toString()); System.out.println(); } @@ -101,4 +89,4 @@ public static void main(String[] args) { primes(); sort(); } -} +} \ No newline at end of file