在 C++ 中检查数字是否为全素数

c++server side programmingprogramming

在这里我们将看到如何检查数字是否为全素数。如果数字是素数,并且其所有数字也都是素数,则该数字被称为全素数。假设数字是 37,这是全素数。但是 97 不是全素数,因为 9 不是素数。

一种有效的方法是:首先我们必须检查是否存在任何非素数的数字。数字必须在 0 到 9 之间。在该范围内,2、3、5 和 7 是素数,其他不是素数。如果都是素数,则检查数字是否为素数。

示例

#include <iostream>
using namespace std;
bool isPrime(int n){
   for(int i = 2; i<= n/2; i++){
      if(n % i == 0){
         return false;
      }
   }
   return true;
}
bool isDigitPrime(int n) {
   int temp = n, digit;
   while(temp){
      digit = temp % 10;
      if(digit != 2 && digit != 3 && digit != 5 && digit != 7){
         return false;
      }
      temp = temp / 10;
   }
   return true;
}
bool isFullPrime(int n){
   return (isDigitPrime(n) && isPrime(n));
}
int main() {
   int num = 37;
   if(isFullPrime(num)){
      cout << "该数字为全素数";
   } else {
      cout << "该数字不是全素数";
   }
}

输出

该数字为全素数"

相关文章