编写函数 bool IsPrime(int Num),其功能是判断整数Num是否是素数(假定1是素数),是则返回true否则返回false。编写主函数实现如下功能:从键盘输入一个正整数(如果输入的是负数则提示“输入的是负数,请输入一个正整数:”),通过调用IsPrime 数判断该数是否是全素数,即该数的各位数字全是素数,如果该数是全素数则输出“该数(应显示输入的具体数据)是全素数!”,否则输出“该数(应显示输入的具体数据) 不是全素数!”。
时间: 2024-02-27 15:58:24 浏览: 79
可以按照以下方式编写程序:
```C++
#include <iostream>
#include <cmath>
using namespace std;
bool IsPrime(int Num) // 判断Num是否是素数
{
if (Num <= 1) return false; // 1不是素数
int n = sqrt(Num);
for (int i = 2; i <= n; i++)
{
if (Num % i == 0) return false; // 不是素数
}
return true; // 是素数
}
bool IsFullPrime(int Num) // 判断Num是否是全素数
{
if (Num <= 0) return false; // 非正整数不是全素数
while (Num > 0)
{
int digit = Num % 10; // 取出Num的个位数
if (!IsPrime(digit)) return false; // 个位数不是素数,Num不是全素数
Num /= 10; // 去掉Num的个位数
}
return true; // Num的各位数字全是素数,Num是全素数
}
int main()
{
int Num;
cout << "请输入一个正整数:" << endl;
cin >> Num;
while (Num < 0) // 输入的是负数
{
cout << "输入的是负数,请输入一个正整数:" << endl;
cin >> Num;
}
if (IsFullPrime(Num))
{
cout << "该数(" << Num << ")是全素数!" << endl;
}
else
{
cout << "该数(" << Num << ")不是全素数!" << endl;
}
return 0;
}
```
在主函数中,首先输入一个正整数,如果输入的是负数,则提示用户重新输入。然后调用 IsFullPrime 函数判断该数是否是全素数,并根据结果输出相应的提示信息。
注意:此程序假定 1 是素数。
阅读全文