# C Program to Print Prime Numbers

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

• Print Prime Numbers from 1 to 50
• Print Prime Numbers in given Range

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

### What is a Prime Number ?

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 as prime number. For example, 13, 23, 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 number 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 under Code::Blocks IDE, therefore after successful build and run, here is the sample run:

#### Program Explained

• Take a variable say count and initialize it with 0 at beginning of the program
• Create a for loop and start it from 1 to 50
• Inside the for loop, create another for loop with different loop variable say j
• Start inner for loop with 2 and run upto one less than the value of outer for loop's variable say i
• Then inside the second for loop, create if block to check whether the number is divisible by any number from 2 to one less than the number. That is if the number is 17, then check whether it is divisible with any of the number from 2, 3, 4, ...., 15, 16 or not
• If it is, then increment the value of count and use break statement to exit from the inner for loop
• Otherwise continue checking divisibility upto one less than the number. That is, if the number is 17, then check upto 16 then exit from the loop, and check for next number say 18
• On exiting from the inner for loop with or without using break statement
• Check whether the variable count holds its original value (that is 0) or not
• If it holds, then the number is not divisible by anything, it means that the number is prime number
• And if the number is prime number, then print the number as output and continue
• If it does not holds its original value (that is 0), then the number is divisible by something, it means that the number is not a prime number
• Never forgot to initialize 0 to count at last of the first for loop

## Print Prime Numbers in Given Range

Now let's modify the above program with adding some extra features. Here in this program we've added to allow user to provide the range under which all the prime numbers gets printed. That is, this program will ask from the user to enter starting number say 10 and ending number say 100 to print all the prime numbers present in between these two numbers say 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:

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

#### Same Program in Other Languages

C Online Test

« Previous Program Next Program »

Like/Share Us on Facebook 😋