# 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

1. Two is the only even Prime number.
2. Every prime number can represented in form of 6n+1 or 6n-1 except 2 and 3, where n is natural number.
3. Two and Three are only two consecutive natural numbers which are prime too.
4. Goldbach Conjecture: Every even integer greater than 2 can be expressed as the sum of two primes.
5. 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```
6. Fermat’s Little Theorem: If n is a prime number, then for every a, 1 <= a < n,
```an-1 ≡ 1 (mod n)
OR
an-1 % n = 1 ```
7. 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.
8. 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?

1. 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 ` `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; ` `} `

## Java

 `// Most optimized 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 n is a multiple of 2 ` `    ``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 Program ` `    ``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    `

## 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 `

## 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 `

## PHP

 ` `

Output :
Time complexity :O(n)

```True
```
2. Efficient solutions

Algorithms to find all prime number smaller the N.

More problems related to Prime number

GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details

My Personal Notes arrow_drop_up 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.