如果紧随其后的数字和紧接其前的数字是质数,则将数字夹在质数之间。因此,一个夹在中间的数在两个质数之间。
给定数字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