diff --git a/algorithms/src/main/java/com/baeldung/algorithms/primechecker/BigIntegerPrimeChecker.java b/algorithms/src/main/java/com/baeldung/algorithms/primechecker/BigIntegerPrimeChecker.java index bd4708b661..752e659fa3 100644 --- a/algorithms/src/main/java/com/baeldung/algorithms/primechecker/BigIntegerPrimeChecker.java +++ b/algorithms/src/main/java/com/baeldung/algorithms/primechecker/BigIntegerPrimeChecker.java @@ -2,10 +2,10 @@ package com.baeldung.algorithms.primechecker; import java.math.BigInteger; -public class BigIntegerPrimeChecker implements PrimeChecker{ +public class BigIntegerPrimeChecker implements PrimeChecker{ @Override - public boolean isPrime(int number) { + public boolean isPrime(Long number) { BigInteger bigInt = BigInteger.valueOf(number); return bigInt.isProbablePrime(100); } diff --git a/algorithms/src/main/java/com/baeldung/algorithms/primechecker/BruteForcePrimeChecker.java b/algorithms/src/main/java/com/baeldung/algorithms/primechecker/BruteForcePrimeChecker.java index 0dfcfa1505..47ffb3e224 100644 --- a/algorithms/src/main/java/com/baeldung/algorithms/primechecker/BruteForcePrimeChecker.java +++ b/algorithms/src/main/java/com/baeldung/algorithms/primechecker/BruteForcePrimeChecker.java @@ -1,12 +1,15 @@ package com.baeldung.algorithms.primechecker; import java.util.stream.IntStream; +import java.util.stream.LongStream; -public class BruteForcePrimeChecker implements PrimeChecker{ +public class BruteForcePrimeChecker implements PrimeChecker{ @Override - public boolean isPrime(int number) { - return IntStream.range(2, number).noneMatch(n -> (number % n == 0)); + public boolean isPrime(Integer number) { + + return number > 2 ? IntStream.range(2, number) + .noneMatch(n -> (number % n == 0)) : false; } diff --git a/algorithms/src/main/java/com/baeldung/algorithms/primechecker/OptimisedPrimeChecker.java b/algorithms/src/main/java/com/baeldung/algorithms/primechecker/OptimisedPrimeChecker.java index f7e3e09be0..06ae4acc7f 100644 --- a/algorithms/src/main/java/com/baeldung/algorithms/primechecker/OptimisedPrimeChecker.java +++ b/algorithms/src/main/java/com/baeldung/algorithms/primechecker/OptimisedPrimeChecker.java @@ -1,13 +1,14 @@ package com.baeldung.algorithms.primechecker; import java.util.stream.IntStream; +import java.util.stream.LongStream; -public class OptimisedPrimeChecker implements PrimeChecker{ +public class OptimisedPrimeChecker implements PrimeChecker{ @Override - public boolean isPrime(int number) { - return IntStream.range(2, (int)Math.sqrt(number) + 1) - .noneMatch(n -> (number % n == 0)); + public boolean isPrime(Integer number) { + return number > 2 ? IntStream.rangeClosed(2, (int) Math.sqrt(number)) + .noneMatch(n -> (number % n == 0)) : false; } diff --git a/algorithms/src/main/java/com/baeldung/algorithms/primechecker/PrimeChecker.java b/algorithms/src/main/java/com/baeldung/algorithms/primechecker/PrimeChecker.java index f31af1ca4f..5f7a15a939 100644 --- a/algorithms/src/main/java/com/baeldung/algorithms/primechecker/PrimeChecker.java +++ b/algorithms/src/main/java/com/baeldung/algorithms/primechecker/PrimeChecker.java @@ -1,6 +1,6 @@ package com.baeldung.algorithms.primechecker; -public interface PrimeChecker { +public interface PrimeChecker { - public boolean isPrime( int number ); + public boolean isPrime( T number ); } diff --git a/algorithms/src/main/java/com/baeldung/algorithms/primechecker/PrimesPrimeChecker.java b/algorithms/src/main/java/com/baeldung/algorithms/primechecker/PrimesPrimeChecker.java index ee66d5d2ab..08b095cb79 100644 --- a/algorithms/src/main/java/com/baeldung/algorithms/primechecker/PrimesPrimeChecker.java +++ b/algorithms/src/main/java/com/baeldung/algorithms/primechecker/PrimesPrimeChecker.java @@ -2,10 +2,10 @@ package com.baeldung.algorithms.primechecker; import org.apache.commons.math3.primes.Primes; -public class PrimesPrimeChecker implements PrimeChecker{ +public class PrimesPrimeChecker implements PrimeChecker{ @Override - public boolean isPrime(int number) { + public boolean isPrime(Integer number) { return Primes.isPrime(number); } diff --git a/algorithms/src/test/java/com/baeldung/algorithms/primechecker/BigIntegerPrimeCheckerTest.java b/algorithms/src/test/java/com/baeldung/algorithms/primechecker/BigIntegerPrimeCheckerTest.java index 95eb85749d..8980397c68 100644 --- a/algorithms/src/test/java/com/baeldung/algorithms/primechecker/BigIntegerPrimeCheckerTest.java +++ b/algorithms/src/test/java/com/baeldung/algorithms/primechecker/BigIntegerPrimeCheckerTest.java @@ -9,18 +9,20 @@ import com.baeldung.algorithms.primechecker.PrimeChecker; public class BigIntegerPrimeCheckerTest { - PrimeChecker primeChecker = new BigIntegerPrimeChecker(); + BigIntegerPrimeChecker primeChecker = new BigIntegerPrimeChecker(); @Test public void givenPrimeNumber_whenCheckIsPrime_thenTrue(){ - assertTrue(primeChecker.isPrime(13)); - assertTrue(primeChecker.isPrime(1009)); + assertTrue(primeChecker.isPrime(13l)); + assertTrue(primeChecker.isPrime(1009L)); + assertTrue(primeChecker.isPrime(74207281L)); } @Test public void givenNonPrimeNumber_whenCheckIsPrime_thenFalse(){ - assertTrue(!primeChecker.isPrime(50)); - assertTrue(!primeChecker.isPrime(1001)); + assertTrue(!primeChecker.isPrime(50L)); + assertTrue(!primeChecker.isPrime(1001L)); + assertTrue(!primeChecker.isPrime(74207282L)); } } diff --git a/algorithms/src/test/java/com/baeldung/algorithms/primechecker/OptimisedPrimeCheckerTest.java b/algorithms/src/test/java/com/baeldung/algorithms/primechecker/OptimisedPrimeCheckerTest.java index 21ad55467f..64ecae7cc3 100644 --- a/algorithms/src/test/java/com/baeldung/algorithms/primechecker/OptimisedPrimeCheckerTest.java +++ b/algorithms/src/test/java/com/baeldung/algorithms/primechecker/OptimisedPrimeCheckerTest.java @@ -9,7 +9,7 @@ import com.baeldung.algorithms.primechecker.PrimeChecker; public class OptimisedPrimeCheckerTest { - PrimeChecker primeChecker = new OptimisedPrimeChecker(); + OptimisedPrimeChecker primeChecker = new OptimisedPrimeChecker(); @Test public void givenPrimeNumber_whenCheckIsPrime_thenTrue(){ diff --git a/algorithms/src/test/java/com/baeldung/algorithms/primechecker/PrimesPrimeCheckerTest.java b/algorithms/src/test/java/com/baeldung/algorithms/primechecker/PrimesPrimeCheckerTest.java index 63de593b44..cb294d6643 100644 --- a/algorithms/src/test/java/com/baeldung/algorithms/primechecker/PrimesPrimeCheckerTest.java +++ b/algorithms/src/test/java/com/baeldung/algorithms/primechecker/PrimesPrimeCheckerTest.java @@ -8,7 +8,7 @@ import com.baeldung.algorithms.primechecker.PrimeChecker; import com.baeldung.algorithms.primechecker.PrimesPrimeChecker; public class PrimesPrimeCheckerTest { - PrimeChecker primeChecker = new PrimesPrimeChecker(); + PrimesPrimeChecker primeChecker = new PrimesPrimeChecker(); @Test public void givenPrimeNumber_whenCheckIsPrime_thenTrue() {