编写程序,从键盘输入一个数n,输出n以内的所有的回文素数。若n输入不合法(为小数或者负数),则输出提示:“illegal input”。 回文素数是指一个数既是素数又是回文数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数称之为素数。例如131既是素数又是回文数。
时间: 2023-06-03 09:04:04 浏览: 291
好的,这个问题属于计算机科学领域,我可以给您提供解答。
以下是程序的实现,请您查看:
```
#include<iostream>
#include<cmath>
using namespace std;
bool isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
bool isPalindrome(int n) {
int reverse = 0;
int m = n;
while (m > 0) {
reverse = reverse * 10 + m % 10;
m /= 10;
}
return n == reverse;
}
int main() {
int n;
cin >> n;
if (n <= 0 || n != (int)n) {
cout << "illegal input" << endl;
return 0;
}
for (int i = 2; i <= n; i++) {
if (isPrime(i) && isPalindrome(i)) {
cout << i << " ";
}
}
cout << endl;
return 0;
}
```
您可以将代码复制到您的编译器上运行,输入一个合法的整数n,程序会输出n以内的所有回文素数。如果输入的n不合法,则输出提示“illegal input”。
阅读全文