描述 回文素数是指一个数既是素数又是回文数。例如,131,既是素数又是回文数。 用户输入一个正整数n(1 <= n <= 100), 请你在一行内输出从小到大排列的的前n个回文素数,数字之间用空格分隔。
时间: 2024-03-09 10:50:20 浏览: 83
下面是 C++ 的代码实现:
```c++
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
bool isPrime(int n) { // 判断素数
if (n <= 1) {
return false;
}
int sqr = sqrt(n);
for (int i = 2; i <= sqr; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
bool isPalindrome(int n) { // 判断回文数
string s = to_string(n);
int len = s.length();
for (int i = 0; i < len / 2; i++) {
if (s[i] != s[len - i - 1]) {
return false;
}
}
return true;
}
int main() {
int n, count = 0, num = 2;
cin >> n;
while (count < n) {
if (isPrime(num) && isPalindrome(num)) {
cout << num << " ";
count++;
}
num++;
}
return 0;
}
```
以上代码实现了回文素数的判断和输出,具体思路如下:
首先定义了两个函数,分别用于判断一个数是否是素数和是否是回文数。
在主函数中,首先读入需要输出的回文素数的个数 n,然后从 2 开始逐个判断每个数是否是回文素数,直到输出了 n 个回文素数为止。在判断时,先判断该数是否同时为素数和回文数,如果是,就输出并计数器加 1,否则继续判断下一个数。
最后输出的回文素数按照从小到大的顺序排列,数字之间用空格分隔。
阅读全文