C Program to Print Prime Numbers

In this tutorial, you will learn and get code about the printing of prime numbers in the following ways:

But before going through the program, let's first understand prime numbers.

What is a prime number?

A prime number is a number that can only be divisible by 1 and the number itself. That is, if a number is not divisible by anything except 1 and the number itself, then it is called a prime number. For example, 13, 23, and 37 are prime numbers, because 13 is not divisible by anything except 1 and 13. Like this, 23 is also not divisible by anything except 1 and 23.

Print prime numbers from 1 to 50

The question is, "Write a program in C to print all prime numbers from 1 to 50." Here is its answer:

#include<stdio.h>
#include<conio.h>
int main()
{
    int i, count=0, j;
    printf("Prime numbers between 1 to 50 are:\n");
    for(i=1; i<=50; i++)
    {
        for(j=2; j<i; j++)
        {
           if(i%j==0)
           {
               count++;
               break;
           }
        }
        if(count==0 && i!=1)
            printf("%d\n", i);
        count = 0;
    }
    getch();
    return 0;
}

As the program was written in the Code::Blocks IDE, here is the sample run after a successful build and run:

print all prime number between 1 50 c

Program Explained

Print Prime Numbers Within a Specific Range

Now let's modify the above program by adding some extra features. In this program, we've added a feature that allows the user to specify the range in which all prime numbers should be printed. That is, this program will ask the user to enter a starting number of 10 and an ending number of 100 to print all the prime numbers present between these two numbers, 10 and 100, as shown in the program given below:

#include<stdio.h>
#include<conio.h>
int main()
{
    int i, count=0, j, start, end;
    printf("Enter starting number: ");
    scanf("%d", &start);
    printf("Enter ending number: ");
    scanf("%d", &end);
    printf("\nPrime numbers between %d to %d are:\n", start, end);
    for(i=start; i<=end; i++)
    {
        for(j=2; j<i; j++)
        {
           if(i%j==0)
           {
               count++;
               break;
           }
        }
        if(count==0 && i!=1)
            printf("%d ", i);
        count = 0;
    }
    getch();
    return 0;
}

Here is the first snapshot of the sample run:

print all prime numbers c

Now supply any number, say 10 as the starting number and 100 as the ending number, to print all the prime numbers present between these two numbers as shown in the second snapshot of the sample run:

c program print prime numbers

The same program in different languages

C Quiz


« Previous Program Next Program »