给定三个数字,并检查它们是否不是相邻质数。如果三个质数之间没有质数,则称为相邻质数。
例子 :
Input : 2, 3, 5
Output : Yes
Explanation: 2, 3, 5 are adjacent primes.
Input : 11, 13, 19
Output : No
Explanation: 11, 13, 19 are not adjacent primes.
Because there exits 17 between 13 and 19 which
is prime.
方法:
我们已经知道什么是质数。在这里,我们需要检查天气,假设三个数字是否互为素数。首先,我们检查给定的三个数字是否为质数。之后,我们将找到第一个数字和第二个数字的下一个质数。如果满足相邻素数的条件,那么很显然给定的三个数字是相邻素数,否则就不是。
C++
// CPP program to check given three numbers are
// primes are not.
#include
using namespace std;
// checks weather given number is prime or not.
bool isPrime(int n)
{
// check if n is a multiple of 2
if (n % 2 == 0)
return false;
// if not, then just check the odds
for (int i = 3; i * i <= n; i += 2)
if (n % i == 0)
return false;
return true;
}
// return next prime number
int nextPrime(int start)
{
// start with next number.
int next = start + 1;
// breaks after finding next prime number
while (!isPrime(next))
next++;
return next;
}
// check given three numbers are adjacent primes are not.
bool areAdjacentPrimes(int a, int b, int c)
{
// check given three numbers are primes are not.
if (!isPrime(a) || !isPrime(b) || !isPrime(c))
return false;
// find next prime of a
int next = nextPrime(a);
// If next is not same as 'a'
if (next != b)
return false;
// If next next is not same as 'c'
if (nextPrime(b) != c)
return false;
return true;
}
// Driver code for above functions
int main()
{
if (areAdjacentPrimes(11, 13, 19))
cout << "Yes";
else
cout << "No";
return 0;
}
Java
// Java program to check given three numbers are
// primes are not.
import java.io.*;
import java.util.*;
class GFG
{
public static boolean isPrime(int n)
{
// check if n is a multiple of 2
if (n % 2 == 0)
return false;
// if not, then just check the odds
for (int i = 3; i * i <= n; i += 2)
if (n % i == 0)
return false;
return true;
}
// return next prime number
public static int nextPrime(int start)
{
// start with next number.
int next = start + 1;
// breaks after finding next prime number
while (!isPrime(next))
next++;
return next;
}
// check given three numbers are adjacent primes are not.
public static boolean areAdjacentPrimes(int a, int b, int c)
{
// check given three numbers are primes are not.
if (!isPrime(a) || !isPrime(b) || !isPrime(c))
return false;
// find next prime of a
int next = nextPrime(a);
// If next is not same as 'a'
if (next != b)
return false;
// If next next is not same as 'c'
if (nextPrime(b) != c)
return false;
return true;
}
// Driver code for above functions
public static void main (String[] args)
{
if (areAdjacentPrimes(11, 13, 19))
System.out.print("Yes");
else
System.out.print("No");
}
}
// Mohit Gupta_OMG <(o_0)>
Python
# Python3 program to check given
# three numbers are primes are not.
# Function checks whether given number is prime or not.
def isPrime(n) :
# Check if n is a multiple of 2
if (n % 2 == 0) :
return False
# If not, then just check the odds
i = 3
while( i*i <= n) :
if (n % i == 0) :
return False
i = i + 2
return True
# Return next prime number
def nextPrime(start) :
# Start with next number
nxt = start + 1
# Breaks after finding next prime number
while (isPrime(nxt) == False) :
nxt = nxt + 1
return nxt
# Check given three numbers
# are adjacent primes are not
def areAdjacentPrimes(a, b, c) :
# Check given three numbers are primes are not
if (isPrime(a) == False or isPrime(b) == False
or isPrime(c) == False) :
return False
# Find next prime of a
nxt = nextPrime(a)
# If next is not same as 'a'
if (nxt != b) :
return False
# If next next is not same as 'c'
if (nextPrime(b) != c) :
return False
return True
# Driver code for above functions
if (areAdjacentPrimes(11, 13, 19)) :
print( "Yes"),
else :
print( "No")
#This code is contributed by NIKITA TIWARI.
C#
// Java program to check given three numbers are
// primes are not.
using System;
class GFG
{
public static bool isPrime(int n)
{
// check if n is a multiple of 2
if (n % 2 == 0)
return false;
// if not, then just check the odds
for (int i = 3; i * i <= n; i += 2)
if (n % i == 0)
return false;
return true;
}
// return next prime number
public static int nextPrime(int start)
{
// start with next number.
int next = start + 1;
// breaks after finding next prime number
while (!isPrime(next))
next++;
return next;
}
// check given three numbers are adjacent primes are not.
public static bool areAdjacentPrimes(int a, int b, int c)
{
// check given three numbers are primes are not.
if (!isPrime(a) || !isPrime(b) || !isPrime(c))
return false;
// find next prime of a
int next = nextPrime(a);
// If next is not same as 'a'
if (next != b)
return false;
// If next next is not same as 'c'
if (nextPrime(b) != c)
return false;
return true;
}
// Driver code
public static void Main ()
{
if (areAdjacentPrimes(11, 13, 19))
Console.WriteLine("Yes");
else
Console.WriteLine("No");
}
}
// This article is contributed by vt_m.
PHP
Javascript
输出 :
No