Related Articles
Primality Test | Set 1 (Introduction and School Method)
• Difficulty Level : Easy
• Last Updated : 17 Mar, 2021

Given a positive integer, check if the number is prime or not. A prime is a natural number greater than 1 that has no positive divisors other than 1 and itself. Examples of first few prime numbers are {2, 3, 5,
Examples :

```Input:  n = 11
Output: true

Input:  n = 15
Output: false

Input:  n = 1
Output: false```

School Method
A simple 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.
Below is the implementation of this method.

## C++

 `// A school method based C++ program to check if a``// number is prime``#include ``using` `namespace` `std;` `bool` `isPrime(``int` `n)``{``    ``// Corner case``    ``if` `(n <= 1)  ``return` `false``;` `    ``// Check from 2 to n-1``    ``for` `(``int` `i=2; i

## Java

 `// A school method based JAVA program``// to check if a number is prime``class` `GFG {``    ` `    ``static` `boolean` `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``    ``public` `static` `void` `main(String args[])``    ``{``        ``if``(isPrime(``11``))``            ``System.out.println(``" true"``);``        ``else``            ``System.out.println(``" false"``);``        ``if``(isPrime(``15``))``            ``System.out.println(``" true"``);``        ``else``            ``System.out.println(``" false"``);``        ` `    ``}``}` `// This code is contributed``// by Nikita Tiwari.`

## Python3

 `# A school method based Python3``# program to check if a number``# is prime` `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 to test above function``print``(``"true"``) ``if` `isPrime(``11``) ``else` `print``(``"false"``)``print``(``"true"``) ``if` `isPrime(``14``) ``else` `print``(``"false"``)` `# This code is contributed by Smitha Dinesh Semwal`

## C#

 `// A optimized school method based C#``// program to check if a number is prime``using` `System;` `namespace` `prime``{``    ``public` `class` `GFG``    ``{    ``        ``public` `static` `bool` `isprime(``int` `n)``        ``{``            ``// Corner cases``            ``if` `(n <= 1) ``return` `false``;``            ` `            ``for` `(``int` `i = 2; i < n; i++)``                ``if` `(n % i == 0)``                ``return` `false``;`` ` `            ``return` `true``;``        ``}``        ` `        ``// Driver program``        ``public` `static` `void` `Main()``        ``{``            ``if` `(isprime(11)) Console.WriteLine(``"true"``);``            ``else` `Console.WriteLine(``"false"``);``            ` `            ``if` `(isprime(15)) Console.WriteLine(``"true"``);``            ``else` `Console.WriteLine(``"false"``);``        ``}``    ``}``}` `// This code is contributed by Sam007`

## PHP

 ``

## Javascript

 ``

Output :

```true
false```

Time complexity of this solution is O(n)
Optimized School Method
We can do following optimizations:

1. Instead of checking till n, we can check till √n because a larger factor of n must be a multiple of smaller factor that has been already checked.
2. The algorithm can be improved further by observing that all primes are of the form 6k ± 1, with the exception of 2 and 3. This is because all integers can be expressed as (6k + i) for some integer k and for i = -1, 0, 1, 2, 3, or 4; 2 divides (6k + 0), (6k + 2), (6k + 4); and 3 divides (6k + 3). So a more efficient method is to test if n is divisible by 2 or 3, then to check through all the numbers of form 6k ± 1. (Source: wikipedia)

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up