题目描述 质数问题一直都是数学中被人津津乐道的问题,而在编程中,质数问题也一直是经常出现的。本题同样是一个质数问题:给定一个正整数n,求出1-n中所有的回文质数并输出,每个回文质数以换行隔开。 输入描述 1行,包含一个数n。 输出描述 若干行,1-n中所有的回文质数。(C++代码实现) 样例1 输入 20 输出 2 3 5 7 11
时间: 2024-04-22 21:26:08 浏览: 105
以下是使用 C++ 实现的代码,用于查找并输出 1-n 中的所有回文质数:
```cpp
#include <iostream>
#include <vector>
#include <cmath>
// 判断一个数是否为质数
bool isPrime(int num) {
if (num < 2)
return false;
for (int i = 2; i <= sqrt(num); i++) {
if (num % i == 0)
return false;
}
return true;
}
// 判断一个数是否为回文数
bool isPalindrome(int num) {
int originalNum = num;
int reversedNum = 0;
while (num > 0) {
reversedNum = reversedNum * 10 + num % 10;
num /= 10;
}
return originalNum == reversedNum;
}
// 查找并输出回文质数
void findPalindromePrimes(int n) {
for (int i = 1; i <= n; i++) {
if (isPrime(i) && isPalindrome(i)) {
std::cout << i << std::endl;
}
}
}
int main() {
int n;
std::cin >> n;
findPalindromePrimes(n);
return 0;
}
```
你可以输入一个正整数 n,然后程序会输出从 1 到 n 中的所有回文质数,每个回文质数占一行。例如,当输入为 20 时,输出为:
```
2
3
5
7
11
```
希望对你有帮助!如果你有任何其他问题,请随时问我。
阅读全文