C++实现小核桃开门条件判断
### 🔍问题分析 要判断能否打开门,需要满足两个条件:一是两个砝码上的数字都是质数,二是这两个数字的和等于给定的 `n`。 ### 💻代码实现 ```cpp #include <iostream> #include <cmath> // 判断一个数是否为质数 bool isPrime(int num) { if (num < 2) return false; for (int i = 2; i <= std::sqrt(num); ++i) { if (num % i == 0) return false; } return true; } int main() { int n, x, y; std::cin >> n >> x >> y; // 判断是否满足开门条件 if (isPrime(x) && isPrime(y) && x + y == n) { std::cout << "yes" << std::endl; } else { std::cout << "no" << std::endl; } return 0; } ``` ### 📝代码解释 1. **`isPrime` 函数**:该函数用于判断一个数是否为质数。如果一个数小于 2,则它不是质数;否则,从 2 到该数的平方根进行遍历,如果能被其中任何一个数整除,则不是质数。 2. **`main` 函数**:首先读取输入的 `n`、`x` 和 `y`,然后调用 `isPrime` 函数判断 `x` 和 `y` 是否为质数,同时检查它们的和是否等于 `n`。如果满足条件,则输出 "yes",否则输出 "no"。 ### ⚙️复杂度分析 - **时间复杂度**:判断一个数是否为质数的时间复杂度为 $O(\sqrt{num})$,因此总的时间复杂度为 $O(\sqrt{x} + \sqrt{y})$。 - **空间复杂度**:只使用了常数级的额外空间,因此空间复杂度为 $O(1)$。 ### 💡开发建议 - **代码复用**:将判断质数的逻辑封装成函数,提高代码的复用性。 - **边界条件处理**:在判断质数时,要注意处理小于 2 的情况。 - **输入验证**:可以添加输入验证,确保输入的数字符合要求。 ######[AI写代码神器 | 533点数解答 | 2026-05-09 19:48:28]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)384
- Python 求解小火龙正整数序列中等差数列整数对个数问题(字节豆包 | 227点数解答 | 2025-02-04 13:34:48)198
- C++ 求解小火龙正整数序列中等差数列整数对个数问题及代码示例(字节豆包 | 373点数解答 | 2025-02-04 13:35:22)197
- 50 分判断题大揭秘:变量、条件、循环与数组知识正误辨析(字节豆包 | 229点数解答 | 2025-12-21 19:15:16)84
- 怪象:a 为 3、b 为 5 时 “a == 3 && b == 5” 竟不成立! (DeepSeek | 81点数解答 | 2026-02-08 19:59:20)36
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)354
- JS 代码:判断“red”改值为“green”并弹窗显示结果( | 176点数解答 | 2024-05-20 21:33:04)433
- 用 JS 代码巧妙判断 a 与 b 关系:输出对应结果 ( | 47点数解答 | 2024-05-20 22:10:14)343
- Python 实现超有趣大鱼吃小鱼游戏:玩家鱼进化与生存挑战! (讯飞星火 | 390点数解答 | 2024-05-31 11:45:36)261
- Python 实现超有趣大鱼吃小鱼游戏,从初始 1 级开启进化之旅!( | 767点数解答 | 2024-05-31 11:50:29)263
- Linux脚本:巧用if条件精准判断/home/test.txt文件是否存在(阿里通义 | 356点数解答 | 2024-11-16 16:42:28)298
- Linux 脚本:轻松判断 /home/test.txt 文件是否存在及更多检查选项(讯飞星火 | 347点数解答 | 2024-11-16 16:45:35)273