Computer >> Máy Tính >  >> Lập trình >> C ++

Kiểm tra xem một số có phải là Số nguyên tố đầy đủ trong C ++ hay không

Ở đây chúng ta sẽ thấy, làm thế nào để kiểm tra một số có phải là số nguyên tố đầy đủ hay không. Một số được cho là một số nguyên tố đầy đủ, nếu nó là số nguyên tố và tất cả các chữ số của nó cũng là số nguyên tố. Giả sử một số là 37, đây là số nguyên tố đầy đủ. Nhưng 97 không phải là số nguyên tố đầy đủ vì 9 không phải là số nguyên tố.

Một cách tiếp cận hiệu quả là; đầu tiên chúng ta phải kiểm tra xem có chữ số nào không phải là số nguyên tố hay không. Các chữ số phải từ 0 đến 9. Trong phạm vi đó 2, 3, 5 và 7 là số nguyên tố, các số khác không phải là số nguyên tố. Nếu tất cả đều là số nguyên tố thì hãy kiểm tra xem số đó có phải là số nguyên tố hay không.

Ví dụ

#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 << "The number is Full Prime";
   } else {
      cout << "The number is not Full Prime";
   }
}

Đầu ra

The number is Full Prime