In this example, you will learn to print all prime numbers between two numbers (entered by the user).
To understand this
example, you should have the knowledge of the following C programming topics:
·
C for Loop
·
C break and
continue
·
C Functions
· C User-defined functions
Make sure you visit
these tutorials before looking at this example:
·
Check Whether a
Number is Prime or Not
·
Swap Two Numbers
Prime Numbers Between Two Integers
#include <stdio.h>
int checkPrimeNumber(int n);
int main() {
int n1, n2, i, flag;
printf("Enter two positive integers: ");
scanf("%d %d", &n1, &n2);
// swap n1 and n2 if n1 > n2
if (n1 > n2) {
n1 = n1 + n2;
n2 = n1 - n2;
n1 = n1 - n2;
}
printf("Prime numbers between %d and %d are: ", n1, n2);
for (i = n1 + 1; i < n2; ++i) {
// flag will be equal to 1 if i is prime
flag = checkPrimeNumber(i);
if (flag == 1) {
printf("%d ", i);
}
}
return 0;
}
// user-defined function to check prime number
int checkPrimeNumber(int n) {
int j, flag = 1;
for (j = 2; j < = n / 2; ++j) {
if (n % j == 0) {
flag = 0;
break;
}
}
return flag;
}Output
Enter two positive integers: 12
30
Prime numbers between 12 and 30 are: 13 17 19 23 29
Explanation
1. In this program, we print all the prime numbers between n1 and n2. If n1 is greater than n2, we swap their values:
if (n1 > n2) {
n1 = n1 + n2;
n2 = n1 - n2;
n1 = n1 - n2;
}2. Then, we run a for loop from i = n1 + 1 to i = n2 - 1.
In each iteration of
the loop, we check if i is a prime number
using the checkPrimeNumber() function.
If i is prime, we print it.
for (i = n1 + 1; i < n2; ++i) {
flag = checkPrimeNumber(i);
if (flag == 1)
printf("%d ", i);
}
}3. The checkPrimeNumber() function contains the code to check whether a number is prime or not.
int checkPrimeNumber(int n) {
int j, flag = 1;
for (j = 2; j < = n / 2; ++j) {
if (n % j == 0) {
flag = 0;
break;
}
}
return flag;
}