Correct the prime check algorithm

There are no prime numbers smaller than 2 and numbers greater than and divisible by 2 are not prime.
This commit is contained in:
Lucas 2019-10-02 00:37:25 +02:00 committed by GitHub
parent 5d77b086a4
commit 2f62929c1d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -21,6 +21,12 @@ public class PrimeCheck {
* @return {@code true} if {@code n} is prime * @return {@code true} if {@code n} is prime
*/ */
public static boolean isPrime(int n) { public static boolean isPrime(int n) {
if (n == 2) {
return true;
}
if (n < 2 || n % 2 == 0) {
return false;
}
for (int i = 3; i <= Math.sqrt(n); i += 2) { for (int i = 3; i <= Math.sqrt(n); i += 2) {
if (n % i == 0) { if (n % i == 0) {
return false; return false;