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 && num > 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 😉