📜  检查数字是否夹在素数之间

📅  最后修改于: 2021-05-05 00:21:10             🧑  作者: Mango

如果紧随其后的数字和紧接其前的数字是质数,则将数字夹在质数之间。因此,一个夹在中间的数在两个质数之间。
给定数字n,我们需要检查此数字是否夹在素数之间。
例子:

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

这个想法很简单,我们检查n-1和n-2是否为质数。

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


输出:

642 : Yes
9 : No