Learn how to write a C program to effectively check whether a number is prime or not with our simple and easy-to-follow tutorial. In this guide, you'll learn to write a C program to find whether a number is prime or not. We will break down each step for easy understanding.
What is a Prime Number?
A prime number is a natural number that can only be divided by 1 and itself as a factor. It means it has no other factors and cannot be divided evenly by other numbers. Prime numbers play a vital role in various applications, including cryptography, coding theory, and other fields, due to their unique properties.
Examples of prime numbers:
2, 3, 5, 7, 11, and 13 are a few prime numbers. These numbers can only be divided evenly by 1 or themselves, so they are prime numbers.
Prime Number Check Program in C
Program:
#include <stdio.h>
#include <math.h> // Necessary for the sqrt function
int main() {
int n, i, c = 0;
printf("Enter any number: ");
scanf("%d", &n);
// Immediate check for numbers less than 2
if (n <= 1) {
printf("%d is not a Prime number.\n", n);
return 0;
}
// Logic to check if the number is prime
// Loop only up to the square root of n to find factors of n
for (i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
c++; // Factor found
break;
}
}
if (c == 0) {
printf("%d is a Prime number.\n", n); // If no factors found, n is prime
} else {
printf("%d is not a Prime number.\n", n); // Otherwise, n is not prime
}
return 0;
}
Program Output:
Enter any number: 7
7 is a Prime number.
Explanation:
Consider a number n=29
.
The program first checks if the number is less than or equal to 1. If so, it is not a prime. Otherwise, it proceeds to the loop.
The loop for(i=2; i<=sqrt(n); i++)
is executed until the value of i
exceeds the square root of n
.
- 1st Iteration:
i = 2
Here, the program checks ifn
moduloi
equals 0.
29%2 != 0; thus,c
is not incremented and remains 0.
i
is incremented for the next iteration, soi = 3
. - 2nd Iteration:
i = 3
Here, ifn % i == 0
, thenc
would be incremented.
29%3 != 0; thus,c
is not incremented and remains 0.
i
is incremented for the next iteration, soi = 4
. - 3rd Iteration:
i = 4
Here, ifn % i == 0
, thenc
would be incremented.
29%4 != 0; thus,c
is not incremented and remains 0.
i
is incremented for the next iteration, soi = 5
. - 4th Iteration:
i = 5
Here, ifn % i == 0
, thenc
would be incremented.
29%5 != 0; thus,c
is not incremented and remains 0.
i
is incremented for the next iteration, soi = 6
.
This pattern continues. However, since the loop only runs up to the square root of n
, it will stop after checking i = 5
as the square root of 29 is approximately 5.39.
By the end of the loop, if c
is still 0, it means that n
was not divisible by any of the checked numbers and is, therefore, prime.
Since c
remains 0 throughout the iterations for our chosen n=29
, the program concludes that n=29
is a prime number.
Conclusion
This tutorial has shown you how to write a C program to check whether a number is prime or not effectively. This prime number code in C is efficient and easy to understand, and it can be used to check for prime numbers of any size.