GFG App
Open App
Browser
Continue

# Check if a number is sandwiched between primes

A number is said to be sandwiched between primes if the number just after it and the number just before are Prime numbers. So, a sandwiched number is between two prime numbers.
Given a number n, we need to check whether this number is sandwiched between primes or not.
Examples:

```Input :  642
Output : Yes
Explanation : 641 and 643 are both prime numbers

Input :  6
Output : Yes
Explanation : 5 and 7 both are prime numbers

Input : 9
Output : No
Explanation : 8 and 10 both are non-prime numbers```

Recommended Practice

The idea is simple, we check if n-1 and n-2 are prime numbers.

## C++

 `// CPP Program to check whether a number is ` `// sandwiched between two primes or not` `#include` `#include ` `using` `namespace` `std;`   `// returns true if number n is prime` `bool` `isPrime(``int` `n)` `{` `    ``// 0 and 1 both are non-primes` `    ``if` `(n == 0 || n == 1) ``return` `false``;` `  `  `    ``// finding square root of n` `    ``int` `root = ``sqrt``(n);`   `    ``// checking if n has any ` `    ``// factor upto square root of n` `    ``// if yes its not prime` `    ``for` `(``int` `i=2;i<=root;i++)` `        ``if` `(n%i == 0)` `            ``return` `false``;` `    ``return` `true``;` `}`   `bool` `isSandwitched(``int` `n)` `{` `    ``return` `(isPrime(n-1) && isPrime(n+1));` `}`   `// Driver's Code` `int` `main()` `{` `   ``int` `n = 642;` `   ``cout << n << ``" : "``;` `   ``if` `(isSandwitched(n))` `       ``cout<<``"Yes\n"``;` `   ``else` `       ``cout<<``"No\n"``;` `     `  `   ``n = 9;` `   ``cout<< n << ``" : "``;` `   ``if` `(isSandwitched(n))` `       ``cout << ``"Yes\n"``;` `   ``else` `       ``cout << ``"No\n"``;` `     `  `     ``return` `0;` `}`

## Java

 `// java Program to check whether ` `// a number is  sandwiched between` `// two primes or not`   `import` `java.io.*;`   `class` `GFG {`   `    ``// returns true if number n is prime` `    ``static` `boolean` `isPrime(``int` `n)` `    ``{` `        ``// 0 and 1 both are non-primes` `        ``if` `(n == ``0` `|| n == ``1``) ``return` `false``;` `    `  `        ``// finding square root of n` `        ``int` `root = (``int``)Math.sqrt(n);` `    `  `        ``// checking if n has any ` `        ``// factor upto square root of n` `        ``// if yes its not prime` `        ``for` `(``int` `i = ``2``; i <= root; i++)` `            ``if` `(n % i == ``0``)` `                ``return` `false``;` `        ``return` `true``;` `    ``}` `    `  `    ``static` `boolean` `isSandwitched(``int` `n)` `    ``{` `        ``return` `(isPrime(n - ``1``) && isPrime(n + ``1``));` `    ``}` `    `  `    `  `    ``// Driver's Code` `    ``public` `static` `void` `main (String[] args) ` `    ``{` `        ``int` `n = ``642``;` `        ``System.out.print ( n + ``" : "``);` `        ``if` `(isSandwitched(n))` `            ``System.out.println(``"Yes"``);` `        ``else` `            ``System.out.println(``"No"``);` `            `  `        ``n = ``9``;` `        ``System.out.print(n + ``" : "``);` `        ``if` `(isSandwitched(n))` `            ``System.out.println( ``"Yes"``);` `        ``else` `            ``System.out.println (``"No"``);` `            `  `        `  `    ``}` `}`   `// This article is contributed by vt_m.`

## Python3

 `# Python Program to check` `# whether a number is ` `# sandwiched between` `# two primes or not`   `import` `math`   `# returns true if number n is prime` `def` `isPrime(n):`   `    ``# 0 and 1 both are non-primes` `    ``if` `(n ``=``=` `0` `or` `n ``=``=` `1``):` `       ``return` `False` `   `  `    ``# finding square root of n` `    ``root ``=` `int``(math.sqrt(n))` ` `  `    ``# checking if n has any ` `    ``# factor upto square root of n` `    ``# if yes its not prime` `    ``for` `i ``in` `range``(``2` `,root``+``1``):` `        ``if` `(n``%``i ``=``=` `0``):` `             ``return` `False` `    ``return` `True`   `def` `isSandwitched(n):`   `    ``return` `(isPrime(n``-``1``) ``and` `isPrime(n``+``1``))`   `# driver Function` `n ``=` `642` `print``(n , end``=``" : "``)` `if` `(isSandwitched(n)):` `    ``print``(``"Yes"``)` `else``:` `    ``print``(``"No"``)` `      `  `n ``=` `9` `print``(n , end``=` `" : "``)` `if` `(isSandwitched(n)):` `    ``print``(``"Yes"``)` `else``:` `    ``print``(``"No"``)`   `# This code is contributed by Gitanjali.`

## C#

 `// C# Program to check whether ` `// a number is sandwiched between` `// two primes or not` `using` `System;`   `class` `GFG {`   `    ``// returns true if number n is prime` `    ``static` `bool` `isPrime(``int` `n)` `    ``{` `        `  `        ``// 0 and 1 both are non-primes` `        ``if` `(n == 0 || n == 1) ` `           ``return` `false``;` `    `  `        ``// finding square root of n` `        ``int` `root = (``int``)Math.Sqrt(n);` `    `  `        ``// checking if n has any factor` `        ``// upto square root of n if yes` `        ``// its not prime` `        ``for` `(``int` `i = 2; i <= root; i++)` `            ``if` `(n % i == 0)` `                ``return` `false``;` `        ``return` `true``;` `    ``}` `    `  `    ``static` `bool` `isSandwitched(``int` `n)` `    ``{` `        ``return` `(isPrime(n - 1) && isPrime(n + 1));` `    ``}` `    `  `    `  `    ``// Driver Code` `    ``public` `static` `void` `Main () ` `    ``{` `        ``int` `n = 642;` `        ``Console.Write( n + ``" : "``);` `        ``if` `(isSandwitched(n))` `           ``Console.WriteLine(``"Yes"``);` `        ``else` `           ``Console.Write(``"No"``);` `            `  `        ``n = 9;` `            ``Console.Write(n + ``" : "``);` `        ``if` `(isSandwitched(n))` `            ``Console.Write(``"Yes"``);` `        ``else` `             ``Console.Write (``"No"``);` `            `  `    ``}` `}`   `// This code is contributed by Nitin Mittal.`

## PHP

 ``

## Javascript

 ``

Output:

```642 : Yes
9 : No```

Time complexity: O(sqrt(n))

Auxiliary space: O(1)

### Using lambda function:

Approach:

• Define an anonymous function is_prime that takes a number and returns True if it is prime and False otherwise.
• Get the input number n.
• Check if n-1 and n+1 are prime by calling the is_prime function.
• If both n-1 and n+1 are prime, print “Yes”. Otherwise, print “No”.

## Python3

 `# Python code to check if a number is sandwiched between primes using anonymous function` `is_prime ``=` `lambda` `num : ``all``(num ``%` `i !``=` `0` `for` `i ``in` `range``(``2``, ``int``(num ``*``*` `0.5``) ``+` `1``))` `n ``=` `9` `if` `is_prime(n``-``1``) ``and` `is_prime(n``+``1``):` `    ``print``(``"Yes"``)` `else``:` `    ``print``(``"No"``)`

Output

`No`

Time complexity: O(sqrt(n))
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up