xxxxxxxxxx
public class PrimeExample{
public static boolean checkPrimeNumber(int num){
int i,m=0;
m=num/2;
if(num==0||num==1){
return false; // is not prime number
}else{
for(i=2;i<=m;i++){
if(num%i==0){
return false; // is not prime number
}
}
return true; // is prime number
}
}
public static void main(String args[]){
//to find out the prime numbers between 10 and 20, and print out the numbers.
for(int i=10;i<=20;i++){
if(checkPrimeNumber(i)==true){
System.out.println(i + " is prime number");
}
}
}
}
xxxxxxxxxx
/* Solution below implements the Sieve of Eratosthenes algorithm
https://www.geeksforgeeks.org/sieve-of-eratosthenes/
Space complexity: O(upper)
Time complexity: O(upper*log(log(upper)))
*/
import java.util.*;
public List<Integer> primesInRange(int lower, int upper) {
if (lower > upper || upper <= 2) {
return new ArrayList<>();
}
List<Integer> result = new ArrayList<>();
boolean[] primes = new boolean[upper];
for (int p = lower; p <= (int)Math.sqrt(upper); ++p) {
if (primes[p] == false) {
for (int scan = p*p; scan < upper; scan += p) {
primes[scan] = true;
}
}
}
for (int idx = lower; idx < upper; idx++) {
if (primes[idx] == false) {
result.add(idx);
}
}
return result;
}