Java Program to Count Primes in Ranges Last Updated : 13 Jan, 2022 Comments Improve Suggest changes Like Article Like Report Given a range [L, R], we need to find the count of total numbers of prime numbers in the range [L, R] where 0 <= L <= R < 10000. Consider that there are a large number of queries for different ranges.Examples: Input : Query 1 : L = 1, R = 10 Query 2 : L = 5, R = 10 Output : 4 2 Explanation Primes in the range L = 1 to R = 10 are {2, 3, 5, 7}. Therefore for query, answer is 4 {2, 3, 5, 7}. For the second query, answer is 2 {5, 7}. Recommended: Please solve it on "PRACTICE" first, before moving on to the solution. A simple solution is to do the following for every query [L, R]. Traverse from L to R, check if current number is prime. If yes, increment the count. Finally, return the count.An efficient solution is to use Sieve of Eratosthenes to find all primes up to the given limit. Then we compute a prefix array to store counts till every value before limit. Once we have a prefix array, we can answer queries in O(1) time. We just need to return prefix[R] - prefix[L-1]. Java // Java program to answer queries for // count of primes in given range. import java.util.*; class GFG { static final int MAX = 10000; // prefix[i] is going to store count // of primes till i (including i). static int prefix[] = new int[MAX + 1]; static void buildPrefix() { // Create a boolean array "prime[0..n]". A // value in prime[i] will finally be false // if i is Not a prime, else true. boolean prime[] = new boolean[MAX + 1]; Arrays.fill(prime, true); for (int p = 2; p * p <= MAX; p++) { // If prime[p] is not changed, then // it is a prime if (prime[p] == true) { // Update all multiples of p for (int i = p * 2; i <= MAX; i += p) prime[i] = false; } } // Build prefix array prefix[0] = prefix[1] = 0; for (int p = 2; p <= MAX; p++) { prefix[p] = prefix[p - 1]; if (prime[p]) prefix[p]++; } } // Returns count of primes in range // from L to R (both inclusive). static int query(int L, int R) { return prefix[R] - prefix[L - 1]; } // Driver code public static void main(String[] args) { buildPrefix(); int L = 5, R = 10; System.out.println(query(L, R)); L = 1; R = 10; System.out.println(query(L, R)); } } // This code is contributed by Anant Agarwal. Output: 2 4 Please refer complete article on Count Primes in Ranges for more details! Comment More infoAdvertise with us Next Article Java Program to Count Primes in Ranges K kartik Follow Improve Article Tags : Java Mathematical Java Programs DSA array-range-queries prefix-sum sieve Prime Number +4 More Practice Tags : JavaMathematicalprefix-sumPrime Numbersieve +1 More Similar Reads Prime Number Program in Java A prime number is a natural number greater than 1, divisible only by 1 and itself. Examples include 2, 3, 5, 7, and 11. These numbers have no other factors besides themselves and one.In this article, we will learn how to write a prime number program in Java when the input given is a Positive number. 6 min read Java Program to Implement wheel Sieve to Generate Prime Numbers Between Given Range A prime number is a whole number greater than 1, which is only divisible by 1 and itself. The first few prime numbers are 2 3 5 7 11 13 17 19 23. Given a range, L to R, the task is to generate all the prime numbers that exist in the Range. Examples Input: 1 10 Output 2 3 5 7 Input: 20 30 Output: 23 5 min read Java Program to Display All Prime Numbers from 1 to N For a given number N, the purpose is to find all the prime numbers from 1 to N.Examples: Input: N = 11Output: 2, 3, 5, 7, 11Input: N = 7Output: 2, 3, 5, 7 Approach 1:Firstly, consider the given number N as input.Then apply a for loop in order to iterate the numbers from 1 to N.At last, check if each 4 min read Java Program to Implement Sieve of Eratosthenes to Generate Prime Numbers Between Given Range A number which is divisible by 1 and itself or a number which has factors as 1 and the number itself is called a prime number. The sieve of Eratosthenes is one of the most efficient ways to find all primes smaller than n when n is smaller than 10 million or so. Example: Input : from = 1, to = 20 Out 3 min read PHP Program to Count Primes in Ranges Given a range [L, R], we need to find the count of total numbers of prime numbers in the range [L, R] where 0 <= L <= R < 10000. Consider that there are a large number of queries for different ranges.Examples: Input : Query 1 : L = 1, R = 10 Query 2 : L = 5, R = 10 Output : 4 2 Explanation: 3 min read Like