陈素数
给定一个正整数 n,任务是检查它是否是陈素数。如果给定的数字是陈质数,则打印“是”,否则打印“否”。 陈质数 : 在数学中,如果‘p+2’是质数或半质数,则称质数‘p’为陈质数。 A 半素数是两个素数的乘积。 前几个陈素数是:
2、3、5、7、11、13、17、19、23、29、31、37、41、47、53、59、67、71、83、89、101
例:
Input : 11
Output: YES
Explanation: 11 is prime number and 11+2
(i.e 13 is also prime number)
Input : 7
Output: YES
Explanation: 7 is prime number and 7+2
( i.e 9 ) is a semi prime number
先决条件 :
进场:
- 检查给定的数字–“n”是否是质数。
- 如果 n 是素数:
- 检查 n+2 是素数还是半素数
- 如果 n+2 是质数或半质数,则打印“是”
- 否则,打印“否”
- 如果 n 不是质数,打印“否”。
以下是上述思路的实现
卡片打印处理机(Card Print Processor 的缩写)
// CPP program to check
// Chen prime number
#include <bits/stdc++.h>
using namespace std;
// Utility function to check whether
// number is semiprime or not
int isSemiprime(int num)
{
int cnt = 0;
for (int i = 2; cnt < 2 && i * i <= num; ++i)
while (num % i == 0)
num /= i, ++cnt; // Increment count
// of prime numbers
// If number is greater than 1, add it to
// the count variable as it indicates the
// number remain is prime number
if (num > 1)
++cnt;
// Return '1' if count is equal to '2' else
// return '0'
return cnt == 2;
}
// Utility function to check whether
// the given number is prime or not
bool isPrime(int n)
{
// Corner cases
if (n <= 1)
return false;
if (n <= 3)
return true;
// This is checked so that we can skip
// middle five numbers in below loop
if (n % 2 == 0 || n % 3 == 0)
return false;
for (int i = 5; i * i <= n; i = i + 6) {
if (n % i == 0 || n % (i + 2) == 0) {
return false;
}
}
return true;
}
// Function to check Chen prime number
bool isChenPrime(int n)
{
if (isPrime(n) && (isSemiprime(n + 2) || isPrime(n + 2)))
return true;
else
return false;
}
// Driver code
int main()
{
int n = 7;
if (isChenPrime(n))
cout << "YES";
else
cout << "NO";
return 0;
}
Java 语言(一种计算机语言,尤用于创建网站)
// JAVA program to check
// Chen Prime number
class GFG {
// Utility function to check
// if the given number is semi-prime or not
static boolean isSemiPrime(int num)
{
int cnt = 0;
for (int i = 2; cnt < 2 && i * i <= num; ++i)
while (num % i == 0) {
num /= i;
// Increment count
// of prime numbers
++cnt;
}
// If number is greater than 1,
// add it to the count variable
// as it indicates the number
// remain is prime number
if (num > 1)
++cnt;
// Return '1' if count is equal
// to '2' else return '0'
return cnt == 2 ? true : false;
}
// Function to check if a number is prime or not
static boolean isPrime(int n)
{
// Corner cases
if (n <= 1)
return false;
if (n <= 3)
return true;
// This is checked so that we can skip
// middle five numbers in below loop
if (n % 2 == 0 || n % 3 == 0)
return false;
for (int i = 5; i * i <= n; i = i + 6) {
if (n % i == 0 || n % (i + 2) == 0) {
return false;
}
}
return true;
}
// Function to check chen prime number
static boolean isChenPrime(int n)
{
if (isPrime(n) && (isSemiPrime(n + 2) || isPrime(n + 2)))
return true;
else
return false;
}
// Driver code
public static void main(String[] args)
{
int n = 7;
if (isChenPrime(n))
System.out.println("YES");
else
System.out.println("NO");
}
}
C
// C# program to check
// Chen Prime number
using System;
class GFG {
// Utility function to check
// if the given number is semi-prime or not
static bool isSemiPrime(int num)
{
int cnt = 0;
for (int i = 2; cnt < 2 && i * i <= num; ++i)
while (num % i == 0) {
num /= i;
// Increment count
// of prime numbers
++cnt;
}
// If number is greater than 1,
// add it to the count variable
// as it indicates the number
// remain is prime number
if (num > 1)
++cnt;
// Return '1' if count is equal
// to '2' else return '0'
return cnt == 2 ? true : false;
}
// Function to check if a number is prime or not
static bool isPrime(int n)
{
// Corner cases
if (n <= 1)
return false;
if (n <= 3)
return true;
// This is checked so that we can skip
// middle five numbers in below loop
if (n % 2 == 0 || n % 3 == 0)
return false;
for (int i = 5; i * i <= n; i = i + 6) {
if (n % i == 0 || n % (i + 2) == 0) {
return false;
}
}
return true;
}
// Function to check chen prime number
static bool isChenPrime(int n)
{
if (isPrime(n) && (isSemiPrime(n + 2) || isPrime(n + 2)))
return true;
else
return false;
}
// Driver code
public static void Main()
{
int n = 7;
if (isChenPrime(n))
Console.WriteLine("YES");
else
Console.WriteLine("NO");
}
}
Python 3
# Python3 program to check
# Chen Prime number
import math
# Utility function to Check
# Semi-prime number
def isSemiPrime(num):
cnt = 0
for i in range(2, int(math.sqrt(num)) + 1):
while num % i == 0:
num /= i
cnt += 1 # Increment count
# of prime number
# If count is greater than 2,
# break loop
if cnt >= 2:
break
# If number is greater than 1, add it to
# the count variable as it indicates the
# number remain is prime number
if(num > 1):
cnt += 1
# Return '1' if count is equal to '2' else
# return '0'
return cnt == 2
# Utility function to check
# if a number is prime or not
def isPrime(n) :
# Corner cases
if (n <= 1) :
return False
if (n <= 3) :
return True
# This is checked so that we can skip
# middle five numbers in below loop
if (n % 2 == 0 or n % 3 == 0) :
return False
i = 5
while(i * i <= n) :
if (n % i == 0 or n % (i + 2) == 0) :
return False
i = i + 6
return True
# Function to check if the
# Given number is Chen prime number or not
def isChenPrime( n):
if(isPrime(n) and (isSemiPrime(n + 2) or isPrime(n + 2))):
return True
else:
return False
# Driver code
n = 7
if(isChenPrime(n)):
print("YES");
else:
print("NO");
java 描述语言
<script>
// Javascript program to check
// Chen prime number
// Utility function to check whether
// number is semiprime or not
function isSemiprime(num)
{
var cnt = 0;
for (var i = 2; cnt < 2 && i * i <= num; ++i)
while (num % i == 0)
num /= i, ++cnt; // Increment count
// of prime numbers
// If number is greater than 1, add it to
// the count variable as it indicates the
// number remain is prime number
if (num > 1)
++cnt;
// Return '1' if count is equal to '2' else
// return '0'
return cnt == 2;
}
// Utility function to check whether
// the given number is prime or not
function isPrime(n)
{
// Corner cases
if (n <= 1)
return false;
if (n <= 3)
return true;
// This is checked so that we can skip
// middle five numbers in below loop
if (n % 2 == 0 || n % 3 == 0)
return false;
for (var i = 5; i * i <= n; i = i + 6) {
if (n % i == 0 || n % (i + 2) == 0) {
return false;
}
}
return true;
}
// Function to check Chen prime number
function isChenPrime(n)
{
if (isPrime(n) && (isSemiprime(n + 2) || isPrime(n + 2)))
return true;
else
return false;
}
// Driver code
var n = 7;
if (isChenPrime(n))
document.write( "YES");
else
document.write( "NO");
// This code is contributed by noob2000.
</script>
Output:
YES
版权属于:月萌API www.moonapi.com,转载请注明出处