Given two numbers a and b as interval range, the task is to find the prime numbers in between this interval.
Examples:
Input : a = 1, b = 10 Output : 2, 3, 5, 7 Input : a = 10, b = 20 Output : 11, 13, 17, 19
In the below program, the range of numbers is taken as input and stored in the variables ‘a’ and ‘b’. Then using for-loop, the numbers between the interval of a and b are traversed. For each number in the for loop, it is checked if this number is prime or not. If found prime, print the number. Then the next number in the loop is checked, till all numbers are checked.
Program:
C++
// C++ program to find the prime numbers // between a given interval #include <bits/stdc++.h> using namespace std; int main() { // Declare the variables int a, b, i, j, flag; // Ask user to enter lower value of interval cout << "Enter lower bound of the interval: " ; cin >> a; // Take input // Ask user to enter upper value of interval cout << "\nEnter upper bound of the interval: " ; cin >> b; // Take input // Print display message cout << "\nPrime numbers between " << a << " and " << b << " are: " ; // Traverse each number in the interval // with the help of for loop for (i = a; i <= b; i++) { // Skip 0 and 1 as they are // niether prime nor composite if (i == 1 || i == 0) continue ; // flag variable to tell // if i is prime or not flag = 1; for (j = 2; j <= i / 2; ++j) { if (i % j == 0) { flag = 0; break ; } } // flag = 1 means i is prime // and flag = 0 means i is not prime if (flag == 1) cout << i << " " ; } return 0; } // This code is contributed by Akanksha Rai |
C
// C program to find the prime numbers // between a given interval #include <stdio.h> int main() { // Declare the variables int a, b, i, j, flag; // Ask user to enter lower value of interval printf ( "Enter lower bound of the interval: " ); scanf ( "%d" , &a); // Take input // Ask user to enter upper value of interval printf ( "\nEnter upper bound of the interval: " ); scanf ( "%d" , &b); // Take input // Print display message printf ( "\nPrime numbers between %d and %d are: " , a, b); // Traverse each number in the interval // with the help of for loop for (i = a; i <= b; i++) { // Skip 0 and 1 as they are // niether prime nor composite if (i == 1 || i == 0) continue ; // flag variable to tell // if i is prime or not flag = 1; for (j = 2; j <= i / 2; ++j) { if (i % j == 0) { flag = 0; break ; } } // flag = 1 means i is prime // and flag = 0 means i is not prime if (flag == 1) printf ( "%d " , i); } return 0; } |
Java
import java.util.Scanner; // Java program to find the prime numbers // between a given interval public class GFG { // driver code public static void main(String[] args) { Scanner sc = new Scanner(System.in); // Declare the variables int a, b, i, j, flag; // Ask user to enter lower value of interval System.out.printf( "Enter lower bound of the interval: " ); a = sc.nextInt(); // Take input // Ask user to enter upper value of interval System.out.printf( "\nEnter upper bound of the interval: " ); b = sc.nextInt(); // Take input // Print display message System.out.printf( "\nPrime numbers between %d and %d are: " , a, b); // Traverse each number in the interval // with the help of for loop for (i = a; i <= b; i++) { // Skip 0 and 1 as they are // niether prime nor composite if (i == 1 || i == 0 ) continue ; // flag variable to tell // if i is prime or not flag = 1 ; for (j = 2 ; j <= i / 2 ; ++j) { if (i % j == 0 ) { flag = 0 ; break ; } } // flag = 1 means i is prime // and flag = 0 means i is not prime if (flag == 1 ) System.out.println(i); } } } |
Python3
# Python3 program to find the prime # numbers between a given interval if __name__ = = '__main__' : # Declare the variables a, b, i, j, flag = 0 , 0 , 0 , 0 , 0 # Ask user to enter lower value of interval print ( "Enter lower bound of the interval:" , end = "") a = int ( input ()) # Take input print (a) # Ask user to enter upper value of interval print ( "Enter upper bound of the interval:" , end = "") b = int ( input ()) # Take input print (b) # Print display message print ( "Prime numbers between" , a, "and" , b, "are:" , end = "") # Traverse each number in the interval # with the help of for loop for i in range (a, b + 1 ): # Skip 1 as1 is niether # prime nor composite if (i = = 1 ): continue # flag variable to tell # if i is prime or not flag = 1 for j in range ( 2 , i / / 2 + 1 ): if (i % j = = 0 ): flag = 0 break # flag = 1 means i is prime # and flag = 0 means i is not prime if (flag = = 1 ): print (i, end = " " ) # This code is contributed # by Mohit kumar 29 |
C#
// C# program to find the prime numbers // between a given interval using System; class GFG{ // Driver code public static void Main( string [] args) { // Declare the variables int a, b, i, j, flag; // Ask user to enter lower value of interval Console.WriteLine( "Enter lower bound of " + "the interval: " ); // Take input a = int .Parse(Console.ReadLine()); // Ask user to enter upper value of interval Console.WriteLine( "\nEnter upper bound " + "of the interval: " ); // Take input b = int .Parse(Console.ReadLine()); // Print display message Console.WriteLine( "\nPrime numbers between " + "{0} and {1} are: " , a, b); // Traverse each number in the interval // with the help of for loop for (i = a; i <= b; i++) { // Skip 0 and 1 as they are // niether prime nor composite if (i == 1 || i == 0) continue ; // flag variable to tell // if i is prime or not flag = 1; for (j = 2; j <= i / 2; ++j) { if (i % j == 0) { flag = 0; break ; } } // flag = 1 means i is prime // and flag = 0 means i is not prime if (flag == 1) Console.WriteLine(i); } } } // This code is contributed by jana_sayantan |
Output:
Enter lower bound of the interval: 1 Enter upper bound of the interval: 10 Prime numbers between 1 and 10 are: 2 3 5 7
Optimized Solution :
The idea is to use the fact that even numbers (except 2) are not primes.
C++
// C++ program to find the prime numbers // between a given interval #include <bits/stdc++.h> using namespace std; int main() { // Declare the variables int a, b, i, j; // Ask user to enter lower value of interval please not // interval < 0 cannot be prime numbers cout << "Enter lower bound of the interval: " ; cin >> a; // Take input // Ask user to enter upper value of interval cout << "\nEnter upper bound of the interval: " ; cin >> b; // Take input // Print display message cout << "\nPrime numbers between " << a << " and " << b << " are: " ; // Explicitly handling the cases when a is less than 2 // since 0 and 1 are not prime numbers if (a <= 2) { a = 2; if (b >= 2) { cout << a << " " ; a++; } } // MAKING SURE THAT a IS ODD BEFORE WE BEGIN // THE LOOP if (a % 2 == 0) a++; // NOTE : WE TRAVERSE THROUGH ODD NUMBERS ONLY for (i = a; i <= b; i = i + 2) { // flag variable to tell // if i is prime or not bool flag = 1; // WE TRAVERSE TILL SQUARE ROOT OF j only. // (LARGEST POSSIBLE VALUE OF A PRIME FACTOR) for (j = 2; j * j <= i; ++j) { if (i % j == 0) { flag = 0; break ; } } // flag = 1 means i is prime // and flag = 0 means i is not prime if (flag == 1) cout << i << " " ; } return 0; } |
Java
// Java program to find the prime numbers // between a given interval import java.util.Scanner; class GFG { // driver code public static void main(String[] args) { Scanner sc = new Scanner(System.in); // Declare the variables int a, b, i, j,flag; // Ask user to enter lower value of interval System.out.printf( "Enter lower bound of the interval: " ); a = sc.nextInt(); // Take input // Ask user to enter upper value of interval System.out.printf( "\nEnter upper bound of the interval: " ); b = sc.nextInt(); // Take input // Print display message System.out.printf( "\nPrime numbers between %d and %d are: " , a, b); // Explicitly handling the cases when a is less than 2 if (a == 1 ) { System.out.println(a); a++; if (b >= 2 ) { System.out.println(a); a++; } } if (a == 2 ) System.out.println(a); // MAKING SURE THAT a IS ODD BEFORE WE BEGIN // THE LOOP if (a % 2 == 0 ) a++; // NOTE : WE TRAVERSE THROUGH ODD NUMBERS ONLY for (i = a; i <= b; i = i + 2 ) { // flag variable to tell // if i is prime or not flag = 1 ; // WE TRAVERSE TILL SQUARE ROOT OF j only. // (LARGEST POSSIBLE VALUE OF A PRIME FACTOR) for (j = 2 ; j * j <= i; ++j) { if (i % j == 0 ) { flag = 0 ; break ; } } // flag = 1 means i is prime // and flag = 0 means i is not prime if (flag == 1 ) System.out.println(i); } } } // This code is contributed by shivanisinghss2110 |
Python3
# Python3 program to find the prime # numbers between a given interval if __name__ = = '__main__' : # Declare the variables a, b, i, j = 0 , 0 , 0 , 0 # Ask user to enter lower value of interval print ( "Enter lower bound of the interval:" ,end = "") a = int ( input ()) # Take input print (a) # Ask user to enter upper value of interval print ( "Enter upper bound of the interval:" ,end = "") b = int ( input ()) # Take input print (b) # Print display message print ( "Prime numbers between" , a, "and" ,b, "are:" , end = "") # Explicitly handling the cases when a is less than 2 if (a = = 1 ): print (a,end = " " ) a + = 1 if (b > = 2 ): print (a,end = " " ) a + = 1 if (a = = 2 ): print (a,end = " " ) # MAKING SURE THAT a IS ODD BEFORE WE BEGIN # THE LOOP if (a % 2 = = 0 ): a + = 1 # NOTE : WE TRAVERSE THROUGH ODD NUMBERS ONLY for i in range (a,b + 1 , 2 ): # flag variable to tell # if i is prime or not flag = 1 # WE TRAVERSE TILL SQUARE ROOT OF j only. # (LARGEST POSSIBLE VALUE OF A PRIME FACTOR) j = 2 while (j * j < = i): if (i % j = = 0 ): flag = 0 break j + = 1 # flag = 1 means i is prime # and flag = 0 means i is not prime if (flag = = 1 ): print (i,end = " " ) # This code is contributed by shubhamsingh10 |
Output:
Enter lower bound of the interval: 1 Enter upper bound of the interval: 10 Prime numbers between 1 and 10 are: 1 2 3 5 7