C Program to Check Whether a Number is Prime or not
Given a positive integer N. The task is to write a C program to check if the number is prime or not.
Definition:
A prime number is a natural number greater than 1 that has no positive divisors other than 1 and itself. The first few prime numbers are {2, 3, 5, 7, 11, ….}
The idea to solve this problem is to iterate through all the numbers starting from 2 to sqrt(N) using a for loop and for every number check if it divides N. If we find any number that divides, we return false. If we did not find any number between 2 and sqrt(N) which divides N then it means that N is prime and we will return True.
Why did we choose sqrt(N)?
The reason is that the smallest and greater than one factor of a number cannot be more than the sqrt of N. And we stop as soon as we find a factor. For example, if N is 49, the smallest factor is 7. For 15, smallest factor is 3.
Below is the C program to check if a number is prime:
C++
// C++ program to check if a // number is prime #include <iostream> #include <math.h> using namespace std; int main() { int n, i, flag = 1; // Ask user for input cout << "Enter a number: \n" ; // Store input number in a variable cin >> n ; // Iterate from 2 to sqrt(n) for (i = 2; i <= sqrt (n); i++) { // If n is divisible by any number between // 2 and n/2, it is not prime if (n % i == 0) { flag = 0; break ; } } if (n <= 1) flag = 0; if (flag == 1) { cout << n << " is a prime number" ; } else { cout << n << " is not a prime number" ; } return 0; } // This code is contributed by shivanisinghss2110. |
C
// C program to check if a // number is prime #include <math.h> #include <stdio.h> int main() { int n, i, flag = 1; // Ask user for input printf ( "Enter a number: \n" ); // Store input number in a variable scanf ( "%d" , &n); // Iterate from 2 to sqrt(n) for (i = 2; i <= sqrt (n); i++) { // If n is divisible by any number between // 2 and n/2, it is not prime if (n % i == 0) { flag = 0; break ; } } if (n <= 1) flag = 0; if (flag == 1) { printf ( "%d is a prime number" , n); } else { printf ( "%d is not a prime number" , n); } return 0; } |
Output:
Enter a number: 11 11 is a prime number
Time Complexity: O(n1/2)
Auxiliary Space: O(1)