C++写出来查找回文素数
时间: 2024-10-16 16:22:17 浏览: 33
在C++中,你可以使用类似Python的方式编写代码来查找回文素数,但因为C++更注重效率,我们可以在计算过程中加入一些优化。以下是使用C++的一个简单示例:
```cpp
#include <iostream>
#include <vector>
#include <string>
bool is_palindrome(int n) {
std::string num_str = std::to_string(n);
int len = num_str.length();
for (int i = 0; i < len / 2; ++i) {
if (num_str[i] != num_str[len - 1 - i]) {
return false;
}
}
return true;
}
bool is_prime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; ++i) {
if (num % i == 0) return false;
}
return true;
}
std::vector<int> find_palindrome_primes(int start, int end) {
std::vector<int> result;
for (int num = start; num <= end; ++num) {
if (is_palindrome(num) && is_prime(num)) {
result.push_back(num);
}
}
return result;
}
int main() {
const int range_start = 5;
const int range_end = 1e8;
auto palindrome_primes = find_palindrome_primes(range_start, range_end);
if (palindrome_primes.empty()) {
std::cout << "No palindrome primes found within the given range.\n";
} else {
std::cout << "Palindrome primes between " << range_start << " and " << range_end << " are:\n";
for (const auto &prime : palindrome_primes) {
std::cout << prime << ' ';
}
std::cout << '\n';
}
return 0;
}
```
在这个代码中,`find_palindrome_primes` 函数负责查找并保存回文质数。`main` 函数则设置了搜索范围并显示结果。注意,C++中的字符串处理通常通过内置库而不是手动转换成字符串来进行,以提高性能。
阅读全文