C program to check whether a number is prime number or not

Write a program in C to input a number and check whether the number is prime number or not using for loop. How to check prime numbers using loop in C programming. Logic to check prime numbers in C programming.

Example

Input

Input any number: 17

Output

17 is prime number

Required knowledge

Basic C programming, If else, For loop

What is Prime number?

Prime numbers are the positive integers greater than 1 that is only divisible by 1 and self. For example: 2, 3, 5, 7, 11 etc...

Logic to check prime number

There are several efficient algorithms for prime test. For this post I am implementing the simplest and easiest algorithm for beginners. If the number is divisible by any number in between 2 to n-1. Then it is composite number otherwise prime.

Step by step descriptive logic to check prime number.

  1. Input a number from user. Store it in some variable say num.
  2. Declare and initialize another variable say isPrime = 1. isPrime variable is used as a notification or flag variable. Assigning 0 means number is composite and 1 means prime.
  3. Run a loop from 2 to num/2, increment 1 in each iteration. The loop structure should be like for(i=2; i<=num/2; i++).
  4. Check, divisibility of the number i.e. if(num%i == 0) then, the number is not prime.

    Set isPrime = 0 indicating number is not prime and terminate from loop.

  5. Outside the loop check the current value of isPrime. According to our assumption if it is equal to 1 then the number is prime otherwise composite.

Program to check prime number

/**
 * C program to whether a number is prime number or not
 */

#include <stdio.h>

int main()
{
    int i, num, isPrime;

    /*
     * isPrime is used as flag variable. 
     * If isPrime = 0, then number is composite
     * else if isPrime = 1, then number is prime.
     * Initially I have assumed the number as prime.
     */
    isPrime = 1; 

    /* Input a number from user */
    printf("Enter any number to check prime: ");
    scanf("%d", &num);

    for(i=2; i<=num/2; i++)
    {
        /* Check divisibility of num */
        if(num%i==0)
        {
            /* Set isPrime to 0 indicating it as composite number */
            isPrime = 0;

            /* Terminate from loop */
            break;
        }
    }

    /*
     * If isPrime contains 1 then it is prime
     */
    if(isPrime == 1)
    {
        printf("%d is prime number", num);
    }
    else
    {
        printf("%d is composite number", num);
    }

    return 0;
}

Enhance your skills by learning this program using functional approach.

Learn more - Program to check prime using functions.

Output

Enter any number to check prime: 7
7 is prime number

Happy coding 😉

About Pankaj

Pankaj Prakash is the founder, editor and blogger at Codeforwin. He loves to learn new techs and write programming articles especially for beginners. He works at Vasudhaika Software Sols as a Software Design Engineer and manages Codeforwin. In short Pankaj is Web developer, Blogger, Learner, Tech and Music lover.

Follow on: Facebook | Twitter | Google | or

Comments and discussion
Have a doubt, write here. I will help my best.
Before commenting you must escape your source code before commenting. Paste your source code inside
<pre><code> ----Your Source Code---- </code></pre>