Make sure you visit these tutorials before looking at this example:
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;
}