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

- Fermat’s Little Theorem: If n is a prime number, then for every a, 1 <= a < n,

a^{n-1}≡ 1 (mod n) OR a^{n-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++

`// 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 Program` `int` `main()` `{` ` ` `isPrime(11) ? cout << ` `" true\n"` `: ` ` ` `cout << ` `" false\n"` `;` ` ` `return` `0;` `}` |

*chevron_right*

*filter_none*

## Java

`// 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*

*filter_none*

## Python3

`# 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 Program ` `if` `isPrime(` `11` `):` ` ` `print` `(` `"true"` `)` `else` `:` ` ` `print` `(` `"false"` `)` ` ` `# This code is contributed by Sachin Bisht` |

*chevron_right*

*filter_none*

## C#

`// 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*

*filter_none*

## PHP

`<?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*

*filter_none*

**Output :**

Time complexity :O(n)

True

**Efficient solutions**

**Algorithms to find all prime number smaller the N. **

- Sieve of Eratosthenes
- Sieve of Eratosthenes in 0(n) time complexity
- Segmented Sieve
- Sieve of Sundaram
- Bitwise Sieve
**Recent Articles on Sieve!**

**More problems related to Prime number **

- Find two distinct prime numbers with given product
- Print all prime numbers less than or equal to N
- Recursive program for prime number
- Find two prime numbers with given sum
- Find the highest occurring digit in prime numbers in a range
- Prime Factorization using Sieve O(log n) for multiple queries
- Program to print all prime factors of a given number
- Least prime factor of numbers till n
- Prime factors of LCM of array elements – GeeksforGeeks
- Program for Goldbach’s Conjecture
- Prime numbers and Fibonacci
- Composite Number
**Recent Articles on Prime Numbers!**

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.

## Recommended Posts:

- Print numbers such that no two consecutive numbers are co-prime and every three consecutive numbers are co-prime
- Absolute Difference between the Sum of Non-Prime numbers and Prime numbers of an Array
- Absolute difference between the Product of Non-Prime numbers and Prime numbers of an Array
- Absolute difference between the XOR of Non-Prime numbers and Prime numbers of an Array
- Count prime numbers that can be expressed as sum of consecutive prime numbers
- Prime numbers after prime P with sum S
- Print the nearest prime number formed by adding prime numbers to N
- Check if a prime number can be expressed as sum of two Prime Numbers
- Print prime numbers with prime sum of digits in an array
- Print all numbers whose set of prime factors is a subset of the set of the prime factors of X
- Sum of prime numbers without odd prime digits
- Check if a number is Prime, Semi-Prime or Composite for very large numbers
- Permutation of first N positive integers such that prime numbers are at prime indices
- Permutation of first N positive integers such that prime numbers are at prime indices | Set 2
- Count all prime numbers in a given range whose sum of digits is also prime
- Numbers less than N which are product of exactly two distinct prime numbers
- Bitwise AND of the sum of prime numbers and the sum of composite numbers in an array
- Count of numbers upto M divisible by given Prime Numbers
- Quick ways to check for Prime and find next Prime in Java
- Find coordinates of a prime number in a Prime Spiral

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.