Example: Prime Numbers Between two Intervals
// C++ Program to Print Prime Numbers between two Numbers
#include <iostream>
bool isPrime(int);
void printPrime(int num1, int num2);
int main(){
int num1, num2;
std::cout << "Enter two positive integers: ";
std::cin >> num1 >> num2;
printPrime(num1, num2);
}
// prints the prime number between num1 and num2
void printPrime(int num1, int num2){
if (num1 > num2){
// swap if num1 is greater than num2
std::swap(num1, num2);
}
for(int i = num1 + 1 ; i < num2 ; ++i){
if (isPrime(i)){
std::cout << i << " ";
}
}
}
// returns true is the given number is true false otherwise
bool isPrime(int n){
bool is_prime = true;
// 0 and 1 are not prime numbers
if (n == 0 || n == 1) {
return false;
}
for(int i = 2; i <= n/2; ++i) {
if (n % i == 0) {
return false;
}
}
return is_prime;
}
Output
Enter two positive integers: 12 55 Prime numbers between 12 and 55 are: 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53
To print all prime numbers between two integers, the printPrime()
function is created. Internally it calls the isPrime
function which checks whether a number is prime or not.
All integers between n1 and n2 are passed to the isPrime
function.
If a number passed to isPrime()
is a prime number, this function returns true
and the number will be written to standard output, otherwise the function returns false
and no action is taken.
If the user enters the larger number first, this program will first swap the numbers. This program won't work without swapping because, inside the for loop of printPrime
function assumes that num1 is always greater than num2.