用C++编写以下程序:编写函数bool IsPrime(int Num),其功能是判断整数Num是否是素数(假定1是素数),是则返回true否则返回false。 编写主函数实现如下功能:从键盘输入个正整数如果输入的是负数则提示“输入的是负数,请输入一个正整数:”),通过调用IsPrime函数判断该数是否是全素数,即该数的各位数字全是素数,如果该数是全素数则输出“该t (应显示输入的具体数据)是全素数!”,否则输出“该数(应显示输入的具体数据)不是全素数!”
时间: 2024-02-27 11:58:47 浏览: 27
以下是代码实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
bool IsPrime(int Num) {
if (Num <= 1) {
return false;
}
for (int i = 2; i <= sqrt(Num); i++) {
if (Num % i == 0) {
return false;
}
}
return true;
}
bool IsFullPrime(int Num) {
if (Num <= 0) {
return false;
}
while (Num > 0) {
int digit = Num % 10;
if (!IsPrime(digit)) {
return false;
}
Num /= 10;
}
return true;
}
int main() {
int Num;
cout << "请输入一个正整数: ";
cin >> Num;
while (Num <= 0) {
cout << "输入的是负数,请输入一个正整数: ";
cin >> Num;
}
if (IsFullPrime(Num)) {
cout << "该" << Num << "是全素数!" << endl;
} else {
cout << "该数" << Num << "不是全素数!" << endl;
}
return 0;
}
```
首先定义了一个判断素数的函数IsPrime,其中判断素数的方法是从2到sqrt(Num)遍历,如果能被整除则返回false,否则返回true。然后定义了一个判断全素数的函数IsFullPrime,其中先判断输入的数是否为负数,如果是则返回false,然后从输入的数的个位开始遍历,如果遇到某一位不是素数则返回false,否则返回true。最后在主函数中从键盘输入一个正整数,如果输入的是负数则提示重新输入,否则调用IsFullPrime函数判断该数是否为全素数并输出结果。