C Program to Check Whether a Number is Prime or not

Given a positive integer N. The task is to write a C program to check if the number is prime or not.


A prime number is a natural number greater than 1 that has no positive divisors other than 1 and itself. The first few prime numbers are {2, 3, 5, 7, 11, ….}

The idea to solve this problem is to iterate through all the numbers starting from 2 to (N/2) using a for loop and for every number check if it divides N. If we find any number that divides, we return false. If we did not find any number between 2 and N/2 which divides N then it means that N is prime and we will return True.

Below is the C program to check if a number is prime:





// C program to check if a
// number is prime
#include <stdio.h>
int main()
    int n, i, flag = 1;
    // Ask user for input
    printf("Enter a number: \n");
    // Store input number in a variable
    scanf("%d", &n);
    // Iterate from 2 to n/2
    for (i = 2; i <= sqrt(n) / 2; i++) {
        // If n is divisible by any number between
        // 2 and n/2, it is not prime
        if (n % i == 0) {
            flag = 0;
    if (flag == 1) {
        printf("%d is a prime number", n);
    else {
        printf("%d is not a prime number", n);
    return 0;



Enter a number: 11
11 is a prime number

My Personal Notes arrow_drop_up

Senior Technical Content Engineer | GeeksforGeeks

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Improved By : AkshatJain19