Prime numbers are those natural numbers which has exactly two factors : 1 and itself. If a number has factors more than two, they are composite. 1 and 0 are neither prime nor composite. C program to determine if a given number is prime or not is shown below:
Example 1: Program to Check Prime Number
#include<stdio.h>
#include<math.h>
int main()
{
int n,i,f=0;
printf("Enter a number : ");
scanf("%d",&n);
if(n < 2)
printf("%d is neither prime nor composite",n);
else
{
for(i=2; i<=(int)pow(n,0.5); i++)
{
if (n % i == 0)
f=f+1;
}
if (f > 0)
printf("%d is composite",n);
else
printf("%d is prime",n);
}
return 0;
}
Here, the number entered by user is stored in integer variable n. Variable f is used to hold number of factors and i is used while looping. To determine whether a number is prime or not, we need to find at least one factor of that number which is neither 1 nor itself. We need to check for that factor starting from 2 to integer part of square root of that number.
Consider 10, the square root of 10 is 3.162. Now, just take the integer part i.e. 3. If we could find a factor for 10 from 2 to 3 then 10 is not a prime number. Here 2 is a factor of 10, so it is not prime. In this way the algorithm works for all possible number.
Output
Enter a number : 21 21 is composite Enter a number : 29 29 is prime