对上述代码进行一些注释
时间: 2024-09-10 12:23:02 浏览: 36
当然,以下是针对提供的C++代码段添加了一些注释,帮助理解每一部分的功能:
```cpp
// 导入必要的库
#include <iostream> // I/O流
#include <cmath> // 访问数学函数,用于sqrt()
// 定义一个函数,检查一个数是否为回文数,即正读和反读都一样
bool isPalindrome(int num) {
int rev = 0; // 反转后的数
while (num > 0) {
rev = rev * 10 + num % 10; // 将当前位加入到反转数中
num /= 10; // 移除最右边的一位
}
return num == rev; // 返回两个数是否相等
}
// 定义一个函数,判断一个数是否为素数
bool isPrime(int num) {
if (num <= 1) return false; // 素数大于1
for (int i = 2; i <= sqrt(num); ++i) { // 遍历从2到该数平方根的所有整数
if (num % i == 0) // 如果能被整除,则不是素数
return false;
}
return true; // 否则,它是素数
}
// 函数查找并返回所有的四位可逆素数
std::vector<int> findReversiblePrimes() {
std::vector<int> result; // 存储找到的可逆素数
for (int i = 1000; i <= 9999; ++i) { // 循环四位数范围
if (isPrime(i) && isPrime((i % 10) * 1000 + (i / 10 % 10) * 100 + (i / 100) % 10)) // 判断正向和反向是否均为素数
result.push_back(i);
}
return result;
}
// 主函数,输出所有找到的可逆素数
int main() {
std::vector<int> reversiblePrimes = findReversiblePrimes();
for (int prime : reversiblePrimes) {
std::cout << prime << " "; // 打印每个可逆素数
}
std::cout << "\n"; // 结束打印一行
return 0;
}
```
这段代码首先定义了判断回文数和素数的辅助函数,然后在主函数中寻找四位的可逆素数,并将它们存入一个 vector 中,最后遍历并打印结果。
阅读全文