C Program to Display Prime Numbers Between Intervals Using Function

To understand this example, you should have the knowledge of the following C programming topics:


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;
}