C Program to Display Prime Numbers Between Intervals Using Function

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:


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;
}
Did you find this article helpful?