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: Please try your approach on {IDE} first, before moving on to the solution.

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



Output:

642 : Yes
9 : No

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.

Improved By : nitin mittal, jit_t