酷代码 AI
菜单
服务商
DeepSeek字节豆包
更多选项

找出所有相差为4的素数对(C++实现)

这道题需要找出所有相差为4的素数对,且两个数都不超过给定的上限`x`。我们可以用筛法或者简单判断素数的方法来解决。 ## 🧮 题意分析 - 输入一个整数`x`(x ≤ 100)。 - 找出所有满足条件的素数对`(a, b)`,其中`b = a + 4`,且`a`和`b`都是素数,并且`a ≤ x`、`b ≤ x`。 - 输出时按`a`从小到大排列。 ## ✅ 解题思路 1. 先用一个函数判断一个数是否为素数(注意1不是素数)。 2. 遍历可能的`a`从 2 到 `x-4`: - 如果`a`和`a+4`都是素数,则输出这一对。 ## 🧪 示例验证 - x = 19: 素数列表:2,3,5,7,11,13,17,19 检查配对: - 3和7(√) - 7和11(√) - 13和17(√) - x = 30: 额外找到 19和23(√) ## 🖥️ C++代码实现 ```cpp #include <iostream> #include <cmath> using namespace std; // 判断素数 bool isPrime(int n) { if (n < 2) return false; if (n == 2) return true; if (n % 2 == 0) return false; for (int i = 3; i <= sqrt(n); i += 2) { if (n % i == 0) return false; } return true; } int main() { int x; cin >> x; for (int a = 2; a <= x - 4; a++) { if (isPrime(a) && isPrime(a + 4)) { cout << a << " " << a + 4 << endl; } } return 0; } ``` ## 💡 代码说明 - **`isPrime`函数**:优化判断,先排除偶数和小于2的数,再从3开始检查奇数因子。 - **主循环**:从2遍历到`x-4`,确保`a+4`不超出范围。 - 由于x ≤ 100,这种朴素判断方法完全够用。 ######[AI问答 | 544点数解答 | 2026-07-07 23:25:03]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]