Prime Numbers

A prime number is a whole number greater than 1, which is only divisible by 1 and itself. First few prime numbers are : 2 3 5 7 11 13 17 19 23 …..

Some interesting fact about Prime numbers 

  • Two is the only even Prime number.
  • Every prime number can represented in form of 6n+1 or 6n-1 except 2 and 3, where n is natural number.
  • Two and Three are only two consecutive natural numbers which are prime too.
  • Goldbach Conjecture: Every even integer greater than 2 can be expressed as the sum of two primes.
  • Wilson Theorem : Wilson’s theorem states that a natural number p > 1 is a prime number if and only if
(p - 1) ! ≡  -1   mod p 
OR  (p - 1) ! ≡  (p-1) mod p
an-1 ≡ 1 (mod n)
OR 
an-1 % n = 1 
  • Prime Number Theorem : The probability that a given, randomly chosen number n is prime is inversely proportional to its number of digits, or to the logarithm of n.
  • Lemoine’s Conjecture : Any odd integer greater than 5 can be expressed as a sum of an odd prime (all primes other than 2 are odd) and an even semiprime. A semiprime number is a product of two prime numbers. This is called Lemoine’s conjecture.

How we check whether a number is Prime or not? 

  • Naive solution
    A naive solution is to iterate through all numbers from 2 to n-1 and for every number check if it divides n. If we find any number that divides, we return false.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// A school method based C++ program to
// check if a number is prime
#include <bits/stdc++.h>
using namespace std;
 
// function check whether a number
// is prime or not
bool isPrime(int n)
{
    // Corner case
    if (n <= 1)
        return false;
 
    // Check from 2 to n-1
    for (int i = 2; i < n; i++)
        if (n % i == 0)
            return false;
 
    return true;
}
 
// Driver Code
int main()
{
    isPrime(11) ? cout << " true\n" : cout << " false\n";
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// A school method based Java program to
// check if a number is prime
import java.util.*;
import java.lang.*;
 
class GFG {
 
    // Check for number prime or not
    static boolean isPrime(int n)
    {
 
        // Check if number is less than
        // equal to 1
        if (n <= 1)
            return false;
 
        // Check if number is 2
        else if (n == 2)
            return true;
 
        // Check if n is a multiple of 2
        else if (n % 2 == 0)
            return false;
 
        // If not, then just check the odds
        for (int i = 3; i <= Math.sqrt(n); i += 2)
        {
            if (n % i == 0)
                return false;
        }
        return true;
    }
 
    // Driver code
    public static void main(String[] args)
    {
        if (isPrime(19))
            System.out.println("true");
 
        else
            System.out.println("false");
    }
}
 
// This code is contributed by Ronak Bhensdadia

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# A school method based Python3 program
# to check if a number is prime
 
# function check whether a number
# is prime or not
 
 
def isPrime(n):
 
    # Corner case
    if (n <= 1):
        return False
 
    # Check from 2 to n-1
    for i in range(2, n):
        if (n % i == 0):
            return False
 
    return True
 
 
# Driver Code
if isPrime(11):
    print("true")
else:
    print("false")
 
# This code is contributed by Sachin Bisht

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// A school method based C# program to
// check if a number is prime
using System;
 
class GFG {
    // function check whether a
    // number is prime or not
    static bool isPrime(int n)
    {
        // Corner case
        if (n <= 1)
            return false;
 
        // Check from 2 to n-1
        for (int i = 2; i < n; i++)
            if (n % i == 0)
                return false;
 
        return true;
    }
 
    // Driver Code
    static void Main()
    {
        if (isPrime(11))
            Console.Write(" true");
 
        else
            Console.Write(" false");
    }
}
 
// This code is contributed by Sam007

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// A school method based PHP program to
// check if a number is prime
 
// function check whether a number
// is prime or not
function isPrime($n)
{
    // Corner case
    if ($n <= 1)
        return false;
 
    // Check from 2 to n-1
    for ($i = 2; $i < $n; $i++)
        if ($n % $i == 0)
            return false;
 
    return true;
}
 
// Driver Code
if(isPrime(11))
    echo("true");
else
    echo("false");
 
// This code is contributed by Ajit.
?>

chevron_right


Output



 true

Time complexity : O(n) 

Using Recursion 

Recursion can also be used to check if a number between 2 to n – 1 divides n. If we find any number that divides, we return false.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to check whether a mumber
// is prime or not using recursion
#include <iostream>
using namespace std;
 
// function check whether a number
// is prime or not
bool isPrime(int n)
{
    static int i = 2;
 
    // corner cases
    if (n == 0 || n == 1)
    {
        return false;
    }
 
    // base cases
    if (n % i == 0)
    {
        return false;
    }
    else
    {
        return true;
    }
    i++;
    return isPrime(n);
}
 
// Driver Code
int main()
{
 
    isPrime(11) ? cout << " true\n" : cout << " false\n";
    return 0;
}
 
// This code is contributed by yashbeersingh42

chevron_right


Output

 true

Time Complexity :O(N), Space Complexity :O(N) 

Algorithms to find all prime numbers smaller than the N. 

More problems related to Prime number 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up

Recommended Posts:


Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.